CN111400728A - 应用于区块链的数据加密解密方法及装置 - Google Patents
应用于区块链的数据加密解密方法及装置 Download PDFInfo
- Publication number
- CN111400728A CN111400728A CN202010149278.0A CN202010149278A CN111400728A CN 111400728 A CN111400728 A CN 111400728A CN 202010149278 A CN202010149278 A CN 202010149278A CN 111400728 A CN111400728 A CN 111400728A
- Authority
- CN
- China
- Prior art keywords
- data
- level
- ciphertext data
- field
- encryption
- 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
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000013475 authorization Methods 0.000 claims abstract description 83
- 238000004590 computer program Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 101100518501 Mus musculus Spp1 gene Proteins 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种应用于区块链的数据加密解密方法及装置,涉及区块链的技术领域,该数据加密方法包括:获取待加密的明文数据;对所述明文数据进行字段级加密和/或行级加密,生成密文数据;生成所述密文数据的授权关系表;其中,所述授权关系表中记录有不同身份标识的用户对所述密文数据的字段级查看权限和/或行级查看权限;将所述密文数据和所述授权关系表存储至区块链。本发明优化了区块链中数据访问权限的细粒度较低的技术问题。
Description
技术领域
本发明涉及区块链技术领域,尤其是涉及一种应用于区块链的数据加密解密方法及装置。
背景技术
随着云计算和大数据时代的到来,数据量级的快速增长和传播对数据隐私保护提出了更高的要求。区块链技术的出现则构建了新的信任体系,区块链技术通过不可篡改的数据结构、先进的共识算法以及链上数据可审计等特性,给用户数据安全带来保障。但区块链上的数据完全公开在参与各方的节点中,无法满足某些特定场景下的需求。
传统的云数据隐私保护方案直接搬移到区块链上并不合适,不仅较为明显的降低了区块链中参与各方的信任基础,对数据访问权限的细粒度也很低。
发明内容
本发明的目的在于提供一种应用于区块链的数据加密解密方法及装置,以优化区块链中数据访问权限的细粒度较低的技术问题。
第一方面,本发明实施例提供了一种应用于区块链的数据加密方法,包括:
获取待加密的明文数据;
对所述明文数据进行字段级加密和/或行级加密,生成密文数据;
生成所述密文数据的授权关系表;其中,所述授权关系表中记录有不同身份标识的用户对所述密文数据的字段级查看权限和/或行级查看权限;
将所述密文数据和所述授权关系表存储至区块链。
在一种可能的实施方式中,在所述获取待加密的明文数据的步骤之后,还包括:
获取所述明文数据的数据类型;
根据所述数据类型确定所述明文数据的加密类型。
在一种可能的实施方式中,所述生成所述密文数据的授权关系表的步骤,包括:
获取与所述密文数据相关的多种身份标识的用户;
确定每种身份标识的用户对所述密文数据的字段级查看权限和/或行级查看权限;
针对每种身份标识的用户,分别生成一个记录有对所述密文数据的字段级查看权限和/或行级查看权限的授权关系表单。
在一种可能的实施方式中,所述对所述明文数据进行字段级加密和/或行级加密,生成密文数据的步骤,包括:
对所述明文数据进行字段级加密,生成初步密文数据;
对所述初步密文数据进行行级加密,生成密文数据。
第二方面,本发明实施例还提供了一种应用于区块链的数据解密方法,包括:
获取密文数据的来访用户的身份标识;
根据所述身份标识查询授权关系表,获得所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限,其中,所述授权关系表中记录有不同身份标识的用户对所述密文数据的字段级查看权限和/或行级查看权限;
根据所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限,对所述密文数据进行解密,生成解密数据。
在一种可能的实施方式中,所述根据所述身份标识查询授权关系表,获得所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限的步骤,包括:
根据所述身份标识,查询授权关系表中与所述身份标识相对应的授权关系表单;
从所述授权关系表单查询,所述来访用户对所述密文数据每一字段的查看权限;和/或,从所述授权关系表单查询,所述来访用户对所述密文数据每一行的查看权限。
在一种可能的实施方式中,所述根据所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限,对所述密文数据进行解密,生成解密数据的步骤,包括:
当所述来访用户具有字段级查看权限和行级查看权限时,对所述密文数据进行行级解密,生成初步解密数据;
对所述初步解密数据进行字段级解密,生成解密数据。
在一种可能的实施方式中,该方法还包括:
将所述解密数据传输至所述来访用户的客户端。
第三方面,本发明实施例提供了一种应用于区块链的数据加密装置,包括:
获取模块,用于获取待加密的明文数据;
加密模块,用于对所述明文数据进行字段级加密和/或行级加密,生成密文数据;
授权关系模块,用于生成所述密文数据的授权关系表;其中,所述授权关系表中记录有不同身份标识的用户对所述密文数据的字段级查看权限和/或行级查看权限;
传输模块,用于将所述密文数据和所述授权关系表存储至区块链。
第四方面,本发明实施例还提供了一种应用于区块链的数据解密装置,包括:
获取模块,用于获取密文数据的来访用户的身份标识;
查询模块,用于根据所述身份标识查询授权关系表,获得所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限;
解密模块,用于根据所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限,对所述密文数据进行解密,生成解密数据。
第五方面,本发明实施例提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的方法。
本发明实施例提供的应用于区块链的数据加密方法中,首先获取待加密的明文数据,对明文数据进行字段级加密和/或行级加密,生成密文数据,也就是可以只进行字段级加密,也可以只进行行级加密,还可以字段级加密和行级加密都进行。然后生成密文数据的授权关系表,再将密文数据和授权关系表存储至区块链。该授权关系表中记录有不同身份标识的用户对密文数据的字段级查看权限和/或行级查看权限。
在本发明实施例提供的应用于区块链的数据解密方法中,就可以根据身份标识查询授权关系表,获得来访用户对密文数据的字段级查看权限和/或行级查看权限,并以此对密文数据进行解密,生成来访用户所需的解密数据。
本发明实施例通过对明文数据进行字段级加密和/或行级加密,生成密文数据,并将用户的身份标识与密文数据的查看权限形成对应关系,能够使每个用户对密文数据的查看权限细化至每一行和/或每一字段,从而优化了区块链中数据访问权限的细粒度较低的技术问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用于区块链的数据加密方法的流程图;
图2为本发明实施例中步骤S104的详细流程图;
图3为本发明实施例提供的应用于区块链的数据解密方法的流程图;
图4为本发明实施例中步骤S302的详细流程图;
图5为本发明实施例提供的应用于区块链的数据加密装置的示意图;
图6为本发明实施例提供的应用于区块链的数据解密装置的示意图;
图7为本发明实施例提供的电子设备的示意图;
图8为本发明实施例中加密与解密过程的示意图;
图9为本发明实施例中加密详细过程的示意图;
图10为本发明实施例中解密详细过程的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
目前,区块链上的数据完全公开在参与各方的节点中,但传统的云数据隐私保护方案直接搬移到区块链上并不合适,不仅较为明显的降低了区块链中参与各方的信任基础,对数据访问权限的细粒度也很低。
现有的实施方案主要有以下两种:
方案一:授权方将数据进行对称加密后存储在区块链上,在线下进行可信的密钥交换进行文件共享和授权。
方案二:授权方用访问方的公钥对上链数据进行非对称加密,数据使用方用自己私钥进行解密,从而实现数据的授权。
方案一中,如果对每个数据单独用对称加密,并不能实现细粒度的加密,从而无法实现字段级的访问权限授予,例如授权方只能控制访问方能看这个文档,但是不能实现对文档中的某一个章节的访问授权。而且文件授权双方的密钥协商成本较高,需要在授权之前建立双方可信的通信渠道。并且一旦进行访问授权,后期权限的撤销成本也很高。
方案二中,授权方用访问方的公钥进行加密,确实能有效的保护数据的安全和隐私,也不需要进行链下的密钥交换,但是授权双方是一对一的方式,也就是说如果对访问方A授权,就需要使用访问方A的公钥对数据进行加密,对于每个不同的访问方都需要使用一个不同的公钥进行加密,重复的加密过程不仅仅浪费了物理资源,还降低的链上数据的存储效率。
本发明实施例提供了一种应用于区块链的数据加密方法,具体可应用于区块链中的授权方。
如图1、图8和图9所示,该数据加密方法包括以下步骤:
S101:获取待加密的明文数据。
根据授权方的上链请求,从授权方获得待上链的数据,此时该数据还未经加密,所以是明文数据。
在一种可能的实施方式中,在上述步骤S101之后,还包括:
S101.1:获取明文数据的数据类型。
数据类型即相当于数据的角色,表示明文数据的重要程度,并依此确定该明文数据所需的加密类型。
S101.2:根据数据类型确定明文数据的加密类型。
加密类型具体可以是字段级加密、行级加密或者字段级和行级的双重加密。
需要说明的是,以上步骤S101.1和步骤S101.2是可选步骤,在一些情况下可以不必执行。
S102:对明文数据进行字段级加密,生成初步密文数据。
字段级加密及其授权访问是指,在上链前将明文数据经过密钥进行函数转换,将纵向数据变成无意义的密文,得到初步密文数据,也就是字段级加密后的密文数据。而经过授权的访问方,可通过密钥将此密文经过解密函数后还原成明文数据。其中,纵向数据可以是键值(key-value)等类型的数据。
S103:对明文数据进行行级加密,生成密文数据。
行级加密及其授权访问也是相同原理,在明文数据上链前,将该明文数据经过密钥进行函数转换后,将横向数据变成无意义的密文,得到最终的密文数据,也就是行级加密后的密文数据。同样的,经过授权的访问方,可通过密钥将此密文经过解密函数后还原成初步密文数据。其中,横向数据通常是指用户名、年龄、性别等。
因为本实施例采用了字段级与行级的双重加密,所以其加密过程如上述步骤S102和步骤S103。而在其他实施方式中,根据实际场景的使用需求,也可能只需进行一重加密,比如可以只进行步骤S102进行字段级加密,或者可以只进行步骤S103进行行级加密。
S104:生成密文数据的授权关系表。
授权关系表中记录有不同身份标识的用户对密文数据的字段级查看权限和行级查看权限。如图2所示,在一种可能的实施方式中,本步骤S104可以包括以下步骤:
S1041:获取与密文数据相关的多种身份标识的用户。
比如,对于一个密文数据,其访问方可以是管理员、维护员、普通用户等多种身份标识,每种身份标识对应着不同的访问权限,如管理员有权限看到全部数据,维护员能看到关键信息以外的大部分数据,普通用户只能看见一小部分数据。
S1042:确定每种身份标识的用户对密文数据的字段级查看权限和行级查看权限。
因为本实施例采用了字段级与行级的双重加密,所以在对密文数据的还原时,可以根据授权关系来决定还原行级数据和字段级数据。例如,用户A有权限还原全部的行级数据和字段级数据,用户B仅能还原一部分行级数据和字段级数据。
S1043:针对每种身份标识的用户,分别生成一个记录有对密文数据的字段级查看权限和行级查看权限的授权关系表单。
最终生成的授权关系表由多个授权关系表单构成,每个授权关系表单记录了一种身份标识的授权关系,而该授权关系又分为字段级查看权限和行级查看权限。
本实施例中,采用一个二维矩阵来记录一种身份标识的授权关系,即该二维矩阵就是一个授权关系表单。例如如下二维矩阵所示,对于一个具有4行且每行4个字段的密文数据,该二维矩阵中包含了某个用户的行级查看权限与字段级查看权限。若二维矩阵中对应值为1,则表示有此行此字段的查看权限,可以解密对应的数据字段并显示给用户对应的明文;若二维矩阵中对应值为0,则表示没有此行此字段的查看权限,不能进行解密。
字段级 | 字段级 | 字段级 | 字段级 | |
行级 | 0 | 0 | 1 | 0 |
行级 | 0 | 1 | 1 | 0 |
行级 | 1 | 0 | 1 | 1 |
行级 | 0 | 0 | 0 | 0 |
应当理解的,在其他实施方式中,如果只进行了步骤S102的字段级加密,则授权关系表中只会记录有不同身份标识的用户对密文数据的字段级查看权限。当然,如果只进行了步骤S103的行级加密,则授权关系表中只会记录有不同身份标识的用户对密文数据的行级查看权限。
S105:将密文数据和授权关系表存储至区块链。
将密文数据和授权关系表都存储到区块链上,这里特别说明一下授权关系表的存储,将授权关系表存储在区块链上,使其不可随意更改,而且授权关系表的更新同样需要进行上链、背书、参与共识等步骤,进一步提高了数据存储的安全性。
本发明实施例还提供了一种应用于区块链的数据解密方法,具体可应用于区块链中的访问方。
如图3、图8和图10所示,该数据解密方法包括以下步骤:
S301:获取密文数据的来访用户的身份标识。
根据来访用户(访问方)的读取请求,获得来访用户的身份标识,例如管理员、维护员、普通用户等。
S302:根据身份标识查询授权关系表,获得来访用户对密文数据的字段级查看权限和行级查看权限。
其中,授权关系表中记录有不同身份标识的用户对密文数据的字段级查看权限和行级查看权限。如图4所示,在一种可能的实施方式中,本步骤S302可以包括以下步骤:
S3021:根据身份标识,查询授权关系表中与身份标识相对应的授权关系表单。
根据身份标识,从授权关系表中查询相对应的授权关系表单,也就是查询与该身份标识对应的二维矩阵。
S3022:从授权关系表单查询,来访用户对密文数据每一字段的查看权限和每一行的查看权限。
从步骤S3021获取的二维矩阵中,查询该来访用户对密文数据的字段级查看权限和行级查看权限,其细粒度可达到每一字段的查看权限和每一行的查看权限。如上述实施例中的二维矩阵,其中值为1的表示此来访用户具有该字段和该行的查看权限,值为0的则表示没有查看权限。
应当理解的,在其他实施方式中,如果该密文数据只经过了字段级加密,则本步骤只会从授权关系表中查询来访用户对密文数据的字段级查看权限。当然,如果该密文数据只经过了行级加密,则本步骤只会从授权关系表中查询来访用户对密文数据的行级查看权限。
S303:根据来访用户对密文数据的字段级查看权限和行级查看权限,对密文数据进行解密,生成解密数据。
例如,根据授权关系表中查询到访用户如果有行级数据查看权限,则对密文数据进行行级解密,还原为初步解密数据。然后根据授权关系表中查询到访用户如果有字段级数据查看权限,则对密文数据进行字段级解密,还原为明文数据。
以上为来访用户具有字段级查看权限和行级查看权限的情况,如果用户只具有行级查看权限,则用户只能获得初步解密数据。
进一步的,本实施例提供的数据解密方法还可以包括以下步骤:
S304:将解密数据传输至来访用户的客户端。
通过以上步骤,即可根据来访用户的身份标识获得解密后的明文数据,或部分明文数据,也就是解密数据,然后将该解密数据传输至来访用户的客户端,即可达到令来访用户查看行级数据和字段级数据的目的,实现了区块链中数据的安全保存与传输。
本发明实施例提供的数据加密方法可以基于区块链服务平台(Blockchain as aService,简称BaaS)进行实施,例如基于BaaS的区块链云服务平台,该区块链云服务平台能够帮助开发者快速构建区块链基础设施,提供区块链应用开发、部署、测试和监控的整套解决方案。
该区块链云服务平台主要的功能包括:
按需部署,按需选择区块链配置,一键构建区块链网络。
区块浏览器,节点、区块、交易、资产等账本信息的可视化展示。
合约IDE(Integrated Drive Electronics,电子集成驱动器),智能合约一站式管理,包括上次、编辑、编译和部署。
API(Application Program Interface,应用程序接口)调用,提供Restful API接口,可视化调用与调试。
账户与通证管理,匿名账户的创建于资产管理,自定义通证发行与流转。
日志查询,实时监控区块链各节点日志信息查看。
本发明实施例提供的应用于区块链的数据加密方法和数据解密方法中,通过对明文数据进行字段级加密和行级加密,生成密文数据,并将用户的身份标识与密文数据的查看权限形成对应关系,能够使每个用户对密文数据的查看权限细化至每一行和每一字段,从而优化了区块链中数据访问权限的细粒度较低的技术问题。
相比于现有的两种方案,虽然区块链中的数据公开可访问,但是本发明实施例引入了行级加密和字段级加密后,只有指定的来访用户才能解除对于字段的加密并获取明文数据,有效的保证了数据的安全性以及数据的隐私性的同时,具有更高的细粒度的授权功能。另外,本发明实施例利用授权关系表保存不同用户的授权关系,也降低了授权方与访问方之间的协商成本,提高了区块链上数据的存储效率。
本发明实施例将数据库中关键敏感字段根据其安全需求分为不同级别,用对称加密算法对关键敏感字段分级别加密,其数据密钥采用椭圆曲线加密算法保护。将对称加密算法、椭圆曲线公钥加密算法和单向函数有机结合,实现了用户使用权限和关键敏感字段的安全级别的关联。用该方案建立的加密数据库,不仅可以保证敏感数据的机密性和完整性,而且节省大量存储空间和支持分级别权限访问,保证了数据库的高效可用性。本方案的具体实施过程主要有以下两方面:
一、数据库加密方案
加密方案由***初始化、数据库中数据关键字段加密、数据加密密钥的安全存储、数据加密字段的解密4个阶段组成。
1、***初始化
令E是Ep上的椭圆曲线,P是E(Fp)上的点,设p的阶是素数n,则集合(p)=(0p,2p,3p,…,(n-l)p)是由P生成的椭圆曲线循环子群。素数p,椭圆曲线方程E,点P和阶n构成公开参数组。用户Ui私钥是在区间[l,n-l]内随机选择的正整数d,相应的公钥是Qi=dP。并将椭圆曲线参数组(p,E,P,n)保存在数据库里。
2、数据库中数据关键字段的加密
令Data-term-z代表数据Data中每个记录的第l个字段属于敏感信息,需以密文保存在数据库,使数据Data中每个记录的第l个字段一般用户是不可见的(即不能访问的),只有达到级别的用户才能访问它。现假设有一数据Data中的记录有α个字段Data-term-lλ(λ=1,2,…,d)属于敏感信息,其安全级别需求从高到低的次序分别为Data-term-l1,Data-term-l2,…,Data-term-lα。数据库按如下方式保存数据Data:
(1)随机选取ko∈{0,1k},计算为字段Data-term-lλ的加密密钥;
(2)用密钥kλ加密,得到Data-term-lλ的密文CData-term-lλ=Ekλ(Data-term-lλ);
(3)将数据Data的敏感信息字段Data-term-lλ(λ=1,2,…,α)以密文CData-term-lλ保存在数据库中,其余字段信息仍以明文保存。
3、数据库数据加密密钥的安全存储
假若授权用户Uj,能访问数据Data的加密字段的最高级别是Data-term-lη,即只能访问加密字段Data-term-lη,…,Data-term-lα,其中1<η≤α。服务器端Ui按如下操作存储data数据的字段加密密钥kλ:
(1)从***公用文件中读取Uj的身份标识IDj所对应的公钥Qj和***公共参数params;
(2)随机均匀地选取r∈[l,n-l],利用私钥Sj计算c1=rp和C2=kη+rQj;
(3)将密文c=(CI,G)与Data保存在同一数据库中。
4、数据加密字段的解密
当Uj想访问数据Data的保密字段时,首先从加密数据库中获取(C1,Q),然后进行如下处理:
(1)利用用户Uj的私钥d,(C1,C2)和公共参数组,计算出解密密钥k=C2-dC1;
(2)用k分别计算加密字段CData-term-lη,…,CData-term-lα的解密密钥,其中η≤τ≤α;
(3)用密钥kτ,分别解密数据Data的加密字段CData-term-lτ,得到该字段的明文Data-term-lτ=Dkτ(CData–term-lτ),其中η≤τ≤α。
以上方案中,授权用户Uj的合法访问区域是加密字段CData-term-lτ,其中η≤τ≤α。Uj不能访问只有高安全级别授权用户访问的加密字段CData-term-lτ,l≤τ≤η-1。H2(.)是安全单向的Hash函数,因此,Uj根据kη从kη=H2(kη-1)求解kη-1是一个难问题。
二、数据库关键敏感字段分级别加密方案的分析
本方案是基于椭圆曲线的离散对数问题和Hash函数的安全性假设的,其安全性和效率分析如下:
(1)可以确保多个授权用户对同一个加密字段进行共享访问,并且是分级别的访问,只有高一层的用户级别才可以对下一层的访问。Uj根据kη从kη=H2(kη-1)求解kη-1,是一个难问题。只有达到级别的用户才能访问它,并且可以访问其级别以下的加密字段。采用对称加密算法对关键字段加密,这样授权用户可以对加密字段进行快速的解密,不影响***运行速度。因此只要通过自己的私钥对密钥的密文解密得到加密字段的密钥,分别计算加密字段CData-term-lη,…,CData-term-lα的解密密钥。其中η≤τ≤α,从而最终可以高效访问明文数据,达到对关键字段分级别访问的目的,并防止越级访问。
(2)密钥的存储安全。因为密码***的安全依赖于密钥的安全,所以最好确保访问密钥的实体数量保持最少。通过限制密钥在使用范围为单一目的,可以减少需要访问密钥的实体数量,在数据库加密***中,这个要求的具体体现是密钥只能用于单一的数据库。本文通过kη得到同一级别中其他敏感字段的密钥,保证了一字一密,同时kη用椭圆曲线加密算法加密,攻击者面临椭圆曲线对数问题,从而可以防止非法用户去随便加密、解密数据库的数据,保证了数据的完整性。
(3)可以抵抗已知密文攻击。已知密文攻击是以大量使用同一密钥的数据作为基础来进行的,如果使用多个不同的密钥对数据进行加密,每个密钥加密的数据量就会比较少,从而限制了这种攻击的有效性。
(4)节省存储空间。与当前通用的密钥长度1024比特的RSA加密方案相比,本方案使用椭圆曲线加密算法达到与其同等的安全性,密钥长度只需160比特。每个用户的密钥长度仅约为RSA方案的15.7%。此外,本文通过kη得到同一级别中其他敏感字段的密钥,保证了一字一密,同时数据库只要保存用户的一个密钥,极大地节省了存储空间;且在***加载密钥时,可以减少处理负荷,使得加密、解密速度更快。
本发明实施例提供一种应用于区块链的数据加密装置,具体可应用于区块链中的授权方。如图5所示,该数据加密装置包括:
获取模块501,用于获取待加密的明文数据。
加密模块502,用于对明文数据进行字段级加密和/或行级加密,生成密文数据。
授权关系模块503,用于生成密文数据的授权关系表;其中,授权关系表中记录有不同身份标识的用户对密文数据的字段级查看权限和/或行级查看权限。
传输模块504,用于将密文数据和授权关系表存储至区块链。
本发明实施例还提供一种应用于区块链的数据解密装置,具体可应用于区块链中的访问方。如图6所示,该数据解密装置包括:
获取模块601,用于获取密文数据的来访用户的身份标识。
查询模块602,用于根据身份标识查询授权关系表,获得来访用户对密文数据的字段级查看权限和/或行级查看权限。
解密模块603,用于根据来访用户对密文数据的字段级查看权限和/或行级查看权限,对密文数据进行解密,生成解密数据。
本发明实施例提供的应用于区块链的数据加密装置和数据解密装置,与上述实施例提供的应用于区块链的数据加密方法和数据解密方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例提供的一种电子设备,如图7所示,电子设备700包括存储器701、处理器702,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例提供的方法的步骤。
如图7所示,电子设备还包括:总线703和通信接口704,处理器702、通信接口704和存储器701通过总线703连接;处理器702用于执行存储器701中存储的可执行模块,例如计算机程序。
其中,存储器701可能包含高速随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口704(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线703可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器701用于存储程序,所述处理器702在接收到执行指令后,执行所述程序,前述本发明任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器702中,或者由处理器702实现。
处理器702可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器702可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器701,处理器702读取存储器701中的信息,结合其硬件完成上述方法的步骤。
对应于上述实时数据处理方法,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述实时数据处理方法的步骤。
本发明实施例所提供的实时数据处理装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的***、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
又例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,再例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述实时数据处理方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种应用于区块链的数据加密方法,其特征在于,包括:
获取待加密的明文数据;
对所述明文数据进行字段级加密和/或行级加密,生成密文数据;
生成所述密文数据的授权关系表;其中,所述授权关系表中记录有不同身份标识的用户对所述密文数据的字段级查看权限和/或行级查看权限;
将所述密文数据和所述授权关系表存储至区块链。
2.根据权利要求1所述的方法,其特征在于,在所述获取待加密的明文数据的步骤之后,还包括:
获取所述明文数据的数据类型;
根据所述数据类型确定所述明文数据的加密类型。
3.根据权利要求2所述的方法,其特征在于,所述生成所述密文数据的授权关系表的步骤,包括:
获取与所述密文数据相关的多种身份标识的用户;
确定每种身份标识的用户对所述密文数据的字段级查看权限和/或行级查看权限;
针对每种身份标识的用户,分别生成一个记录有对所述密文数据的字段级查看权限和/或行级查看权限的授权关系表单。
4.根据权利要求1所述的方法,其特征在于,所述对所述明文数据进行字段级加密和/或行级加密,生成密文数据的步骤,包括:
对所述明文数据进行字段级加密,生成初步密文数据;
对所述初步密文数据进行行级加密,生成密文数据。
5.一种应用于区块链的数据解密方法,其特征在于,包括:
获取密文数据的来访用户的身份标识;
根据所述身份标识查询授权关系表,获得所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限,其中,所述授权关系表中记录有不同身份标识的用户对所述密文数据的字段级查看权限和/或行级查看权限;
根据所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限,对所述密文数据进行解密,生成解密数据。
6.根据权利要求5所述的方法,其特征在于,所述根据所述身份标识查询授权关系表,获得所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限的步骤,包括:
根据所述身份标识,查询授权关系表中与所述身份标识相对应的授权关系表单;
从所述授权关系表单查询,所述来访用户对所述密文数据每一字段的查看权限;和/或,从所述授权关系表单查询,所述来访用户对所述密文数据每一行的查看权限。
7.根据权利要求5所述的方法,其特征在于,所述根据所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限,对所述密文数据进行解密,生成解密数据的步骤,包括:
当所述来访用户具有字段级查看权限和行级查看权限时,对所述密文数据进行行级解密,生成初步解密数据;
对所述初步解密数据进行字段级解密,生成解密数据。
8.根据权利要求5所述的方法,其特征在于,还包括:
将所述解密数据传输至所述来访用户的客户端。
9.一种应用于区块链的数据加密装置,其特征在于,包括:
获取模块,用于获取待加密的明文数据;
加密模块,用于对所述明文数据进行字段级加密和/或行级加密,生成密文数据;
授权关系模块,用于生成所述密文数据的授权关系表;其中,所述授权关系表中记录有不同身份标识的用户对所述密文数据的字段级查看权限和/或行级查看权限;
传输模块,用于将所述密文数据和所述授权关系表存储至区块链。
10.一种应用于区块链的数据解密装置,其特征在于,包括:
获取模块,用于获取密文数据的来访用户的身份标识;
查询模块,用于根据所述身份标识查询授权关系表,获得所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限;
解密模块,用于根据所述来访用户对所述密文数据的字段级查看权限和/或行级查看权限,对所述密文数据进行解密,生成解密数据。
11.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至8任一项所述的方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010149278.0A CN111400728A (zh) | 2020-03-05 | 2020-03-05 | 应用于区块链的数据加密解密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010149278.0A CN111400728A (zh) | 2020-03-05 | 2020-03-05 | 应用于区块链的数据加密解密方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111400728A true CN111400728A (zh) | 2020-07-10 |
Family
ID=71434087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010149278.0A Pending CN111400728A (zh) | 2020-03-05 | 2020-03-05 | 应用于区块链的数据加密解密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400728A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112016113A (zh) * | 2020-09-28 | 2020-12-01 | 同盾控股有限公司 | 数据加解密方法、装置及*** |
CN112487483A (zh) * | 2020-12-14 | 2021-03-12 | 深圳昂楷科技有限公司 | 一种加密数据库流量审计方法及装置 |
CN112511515A (zh) * | 2020-11-19 | 2021-03-16 | 成都无右区块链科技有限公司 | 一种用于数据上链的链数立方体 |
CN114401148A (zh) * | 2022-01-28 | 2022-04-26 | 中企云链(北京)金融信息服务有限公司 | 一种通信数据加解密优化方法 |
CN116155619A (zh) * | 2023-04-04 | 2023-05-23 | 江西农业大学 | 数据处理方法、数据请求端、数据拥有端及数据处理装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563788A (zh) * | 2018-04-27 | 2018-09-21 | 腾讯科技(深圳)有限公司 | 基于区块链的数据查询方法、装置、服务器及存储介质 |
CN109462472A (zh) * | 2017-09-06 | 2019-03-12 | 阿里巴巴集团控股有限公司 | 数据加密和解密的方法、装置和*** |
CN109977697A (zh) * | 2019-04-03 | 2019-07-05 | 陕西医链区块链集团有限公司 | 一种区块链的数据授权方法 |
US20190392164A1 (en) * | 2018-06-26 | 2019-12-26 | American Express Travel Related Services Company, Inc. | Application level data security |
-
2020
- 2020-03-05 CN CN202010149278.0A patent/CN111400728A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109462472A (zh) * | 2017-09-06 | 2019-03-12 | 阿里巴巴集团控股有限公司 | 数据加密和解密的方法、装置和*** |
CN108563788A (zh) * | 2018-04-27 | 2018-09-21 | 腾讯科技(深圳)有限公司 | 基于区块链的数据查询方法、装置、服务器及存储介质 |
US20190392164A1 (en) * | 2018-06-26 | 2019-12-26 | American Express Travel Related Services Company, Inc. | Application level data security |
CN109977697A (zh) * | 2019-04-03 | 2019-07-05 | 陕西医链区块链集团有限公司 | 一种区块链的数据授权方法 |
Non-Patent Citations (2)
Title |
---|
李斌,白淑君,宋怀刚: "具备多级安全机制的在线数据库同态加密方案", pages 1 * |
陈越等: "数据库安全", pages: 74 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112016113A (zh) * | 2020-09-28 | 2020-12-01 | 同盾控股有限公司 | 数据加解密方法、装置及*** |
CN112016113B (zh) * | 2020-09-28 | 2024-04-16 | 同盾控股有限公司 | 数据加解密方法、装置及*** |
CN112511515A (zh) * | 2020-11-19 | 2021-03-16 | 成都无右区块链科技有限公司 | 一种用于数据上链的链数立方体 |
CN112487483A (zh) * | 2020-12-14 | 2021-03-12 | 深圳昂楷科技有限公司 | 一种加密数据库流量审计方法及装置 |
CN112487483B (zh) * | 2020-12-14 | 2024-05-03 | 深圳昂楷科技有限公司 | 一种加密数据库流量审计方法及装置 |
CN114401148A (zh) * | 2022-01-28 | 2022-04-26 | 中企云链(北京)金融信息服务有限公司 | 一种通信数据加解密优化方法 |
CN116155619A (zh) * | 2023-04-04 | 2023-05-23 | 江西农业大学 | 数据处理方法、数据请求端、数据拥有端及数据处理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yuan et al. | Public integrity auditing for dynamic data sharing with multiuser modification | |
US11239994B2 (en) | Techniques for key provisioning in a trusted execution environment | |
US20200145231A1 (en) | Secure dynamic threshold signature scheme employing trusted hardware | |
KR101575030B1 (ko) | 클라우드 상의 공유 데이터에 대한 다중 서명생성방법 | |
US20200401726A1 (en) | System and method for private integration of datasets | |
CN111400728A (zh) | 应用于区块链的数据加密解密方法及装置 | |
Han et al. | A data sharing protocol to minimize security and privacy risks of cloud storage in big data era | |
WO2022199290A1 (zh) | 多方安全计算 | |
CN105659231B (zh) | 实现对数据的访问 | |
CN109688119B (zh) | 一种云计算中的可匿名追踪性身份认证方法 | |
CN110800250A (zh) | 受控加密私钥的发布 | |
CN113987554B (zh) | 获取数据授权的方法、装置及*** | |
KR101615137B1 (ko) | 속성 기반의 데이터 접근 방법 | |
US11588631B2 (en) | Systems and methods for blockchain-based automatic key generation | |
CN112187741B (zh) | 基于运维审计***的登录认证方法、装置和电子装置 | |
CN113438205A (zh) | 区块链数据访问控制方法、节点以及*** | |
Da Costa et al. | Sec-Health: A blockchain-based protocol for securing health records | |
Liu et al. | Efficient decentralized access control for secure data sharing in cloud computing | |
Almuzaini et al. | Key Aggregation Cryptosystem and Double Encryption Method for Cloud‐Based Intelligent Machine Learning Techniques‐Based Health Monitoring Systems | |
Junghanns et al. | Engineering of secure multi-cloud storage | |
Reedy et al. | A Secure Framework for Ensuring EHR's Integrity Using Fine-Grained Auditing and CP-ABE | |
KR101812311B1 (ko) | 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법 | |
Shen et al. | Access-authorizing and privacy-preserving auditing with group dynamic for shared cloud data | |
Kamalam et al. | Secure and efficient privacy preserving public auditing scheme for cloud storage | |
US20210111880A1 (en) | Access control methods, access control devices, and computer readable media |
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 |
Application publication date: 20200710 |
|
RJ01 | Rejection of invention patent application after publication |