CN111680326A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN111680326A CN111680326A CN202010518702.4A CN202010518702A CN111680326A CN 111680326 A CN111680326 A CN 111680326A CN 202010518702 A CN202010518702 A CN 202010518702A CN 111680326 A CN111680326 A CN 111680326A
- Authority
- CN
- China
- Prior art keywords
- key
- encryption algorithm
- data
- ciphertext
- target data
- 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
- 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
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据处理方法及装置,该数据处理方法包括:获取目标数据;获取第一密钥;使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据;将所述加密数据和第一密钥密文发送至接收方;其中,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的;所述第一加密算法的效率大于所述第二加密算法的效率。本申请通过对目标数据和第一密钥进行加密后发送,可以保证区块链数据发送过程的安全性;加密过程中,使用效率较高的第一加密算法对目标数据进行加密,使用效率较低的第二加密算法对第一密钥进行加密,可以有效提高数据加密传输效率。
Description
技术领域
本申请涉及区块链技术领域,特别涉及一种数据处理方法及装置。
背景技术
区块链技术,其目标是实现数据的分布式可靠存储。目前区块链中,为了实现细粒度的数据隐私保护,通常采用对称加密对数据加密,以形成保护,但存在一定的密钥泄露隐患。
发明内容
本申请实施例的目的在于提供一种数据处理方法及装置,本申请的实施例使用了如下技术方案:
一种数据处理方法,所述方法包括:
获取目标数据;
获取第一密钥;
使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据;
将所述加密数据和第一密钥密文发送至接收方;
其中,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的;所述第一加密算法的效率大于所述第二加密算法的效率。
可选地,所述目标数据的数据量大于所述第一密钥的数据量。
可选地,所述方法还包括:使用第三加密算法对所述第一密钥进行加密,得到第二密钥密文。
可选地,所述获取第一密钥包括:
确定本地数据库中是否存储有第二密钥密文;
若存储有所述第二密钥密文,使用第三解密算法对所述第二密钥密文进行解密,得到所述第一密钥;
若未存储所述第二密钥密文,生成所述第一密钥。
可选地,所述使用第三加密算法对所述第一密钥进行加密,得到第二密钥密文包括:
在可信执行环境内,使用第二密钥和第三加密算法对所述第一密钥进行加密,得到所述第二密钥密文。
可选地,所述第一加密算法为对称加密算法,所述第二加密算法为属性加密算法。
可选地,使用第二加密算法对所述第一密钥进行加密,得到所述第一密钥密文。
本申请实施例还提供一种数据处理方法,所述方法包括:
接收发送方发送的加密数据和第一密钥密文;
对所述第一密钥密文进行解密,得到第一密钥;
使用所述第一密钥和第一解密算法对所述加密数据进行解密,得到目标数据;
其中,所述加密数据为使用所述第一密钥和第一加密算法对所述目标数据进行加密得到的,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的,所述第一加密算法的效率大于所述第二加密算法的效率。
可选地,所述方法还包括:使用第三加密算法对所述第一密钥进行加密,得到第三密钥密文。
本申请实施例提供一种数据处理装置,包括:
第一获取模块,获取目标数据;
第二获取模块,获取第一密钥;
加密模块,使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据;
发送模块,将所述加密数据和第一密钥密文发送至接收方;
其中,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的;所述第一加密算法的效率大于所述第二加密算法的效率。
本申请实施例提供的数据处理方法及装置通过使用第一密钥和第一加密算法对目标数据进行加密得到加密数据,并将加密后的加密数据与使用第二加密算法对第一密钥进行加密得到的第一密钥密文一起发送至接收方,可以保证区块链数据发送过程的安全性;同时,加密过程中,使用效率较高的第一加密算法对目标数据进行加密,使用效率较低的第二加密算法对第一密钥进行加密,可以有效提高数据加密传输效率。
附图说明
图1为本申请实施例的数据处理方法的流程图;
图2为本申请实施例的另一数据处理方法的流程图;
图3为本申请实施例的又一数据处理方法的流程图;
图4为本申请实施例的又一数据处理方法的流程图;
图5为本申请实施例的数据处理装置的结构示意图;
图6为本申请实施例的终端设备的结构示意图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可使用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
本申请适用的一种场景为区块链(区块链网络),该场景中还可以包括能够访问区块链的终端设备,该终端设备不属于区块链中的节点,但是该终端设备可以通过网络访问区块链中的节点,以读取区块链中的数据。
为了更好地对区块链的隐私数据进行保护,提高区块链中数据的安全性,本申请提供了数据处理方法。
图1为本申请实施例的数据处理方法的流程图。如图1所示,本申请实施例提供一种数据处理方法,应用于发送方,所述方法包括:
S101、获取目标数据。
目标数据为区块链中待发送的数据,该数据可以以明文的形式存储在区块链的state数据库中。待发送的数据可以是分布式账本的账本数据。账本数据可以包括账户名称、交易数据等。区块链中包含一个或多个节点。发送方可以为区块链中的第一节点。发送方可以从state数据库中获取目标数据。
其中,第一节点可以是区块链中的peer节点,主要负责通过执行链码(chaincode)实现对账本的读写操作,并存储、维护状态数据和账本的副本,即作为记账节点。部分peer节点根据背书策略的设定会执行交易并对结果进行签名背书,充当背书节点(Endorser)的角色。背书节点是动态的角色,每个链码在实例化的时候都会设置背书策略,指定哪些节点对交易背书后才是有效的。只有在终端设备的应用程序向节点发起交易背书请求的时候该Peer节点才是背书节点,否则它就是普通的记账节点。第一节点也可以是区块链中的其他节点,例如排序节点(Orderer节点)。
其中,第一节点可以是一个节点,也可以是多个节点。
目标数据也可以以明文的形式存储于区块链的各节点中,发送方直接从节点中获取目标数据。
S102、获取第一密钥。
第一密钥为用于将目标数据转换为加密数据的参数,即由明文转换为密文的参数。第一密钥可以为预设的密钥;也可以是根据需要生成的,如随机生成的密钥,或者按照设定的规则生成的密钥。
S103、使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据。
获取目标数据和第一密钥后,在可信执行环境(TEE)中使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据。
其中,可信执行环境在区块链的节点中创建,本实施例中,可信执行环境可以为第一节点中创建的可信执行环境。可信执行环境可以从硬件上提供一个隔离的执行环境,为隐私数据提供可信的执行环境。
S104、将所述加密数据和第一密钥密文发送至接收方。
其中,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的;所述第一加密算法的效率大于所述第二加密算法的效率。
在可信执行环境中完成目标数据的加密后,可以将加密后的加密数据发送至接收方,以保证加密数据传输过程中的安全性。接收方可以为区块链中不同于第一节点的第二节点,也可以为能够访问区块链的终端设备,该终端设备不属于区块链中的节点。
步骤S104中,在将加密数据发送至接收方的同时,还可以将使用第二加密算法对所述第一密钥进行加密得到的第一密钥密文也发送至接收方。即数据发送过程中,目标数据和第一密钥均以密文的形式发送,目标数据在可信执行环境中进行加密,第一密钥不会出现在可信执行环境外。
本申请实施例中,通过使用第一密钥和第一加密算法对目标数据进行加密得到加密数据,并将加密后的加密数据与使用第二加密算法对第一密钥进行加密得到的第一密钥密文一起发送至接收方,可以保证区块链数据发送过程的安全性;同时,加密过程中,使用效率较高的第一加密算法对目标数据进行加密,使用效率较低的第二加密算法对第一密钥进行加密,可以有效提高数据加密传输效率。
需要说明的是,上述将加密数据和第一密钥密文一起发送至接收方,可以同时发送也可以存在一定的先后顺序,本申请不具体限定。
上述实施例中,所述目标数据的数据量大于所述第一密钥的数据量。由于第一加密算法的效率大于所述第二加密算法的效率,因此,使用效率更高的第一加密算法对数据量较大的目标数据进行加密,使用效率较低的第二加密算法对数据量较小的第一密钥进行加密,可以提高整个加密过程中的数据处理效率。
可选地,所述第一加密算法为对称加密算法,所述第二加密算法为属性加密算法。对称加密算法的效率(运算速度)大于属性加密算法的效率。
具体地,使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据,可以表示为:xA=Enc(m,key),其中,xA为加密数据,Enc()表示加密,m为目标数据,key为第一密钥。
本实施例中,目标数据为存储于区块链中的状态数据,在发送数据时,通过使用对称加密对目标数据进行加密可以对区块链各节点中的隐私数据进行保护,即实现更加细粒度的隐私保护;且对称加密的效率较高,可以提高数据发送效率,从而提高区块链交易过程中的效率。对称加密算法可以为SM4、AES、DES等,本申请不具体限定。
第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的,第一密钥密文的加密过程可以表示为:Akey=Enc(PK,key,policy),其中,Akey为第一密钥密文;Enc()表示加密,PK为公钥,可以在区块链系统初始化时获得;key为待加密的第一密钥;policy为对第一密钥进行加密时的策略。
区块链中的各个节点均可获得PK,policy随着用户属性的变化而变化,由于对称加密的加密密钥与解密密钥相同,本实施例中,通过使用属性加密算法对第一密钥进行加密得到第一密钥密文,可以实现第一密钥的动态更改,解决对称加密密钥传输带来的密钥泄露的问题,且属性加密提供了更加灵活的访问结构,可以实现第一密钥密文的动态访问控制。
使用属性加密算法得到的第一密钥密文可以存储于区块链中,被区块链中的各个节点读取,实现第一密钥密文的持久化存储。
在一些实施例中,所述方法还包括:使用第三加密算法对所述第一密钥进行加密,得到第二密钥密文。
接收方在接收到加密数据和第一密钥密文后,对加密数据进行解密,需要获取第一密钥,由于第一密钥密文是使用属性加密算法得到的,当接收方接收第一密钥密文后,需要采用与属性加密算法相对应的属性解密算法对第一密钥进行解密,进而对加密数据进行解密。由于使用属性加密、解密算法存在一定的耗时,为提高区块链的系统效率,可以使用第三加密算法对所述第一密钥进行加密,得到第二密钥密文,以便于后续的数据处理。
进一步地,使用第三加密算法对所述第一密钥进行加密,得到第二密钥密文包括:
在可信执行环境内,使用第二密钥和第三加密算法对所述第一密钥进行加密,得到所述第二密钥密文。
其中,可信执行环境为第一节点中的创建的,第二密钥为用于对第一密钥进行加密或解密的参数,第二密钥在可信执行环境内基于设备标识推导出,即第二密钥可以基于第一节点的设备标识推导出。设备标识可以为设备ID、设备序列号等。
可选地,第三加密算法为对称加密算法,第二密钥密文的加密过程可以表示为:Skey1=Enc(key,c1),其中,Skey1为第二密钥密文,Enc()表示加密,key为待加密的第一密钥,c1为第二密钥。
由于第二密钥基于设备标识推导出,因此,采用对称加密算法对第一密钥进行加密时,其他节点或终端设备无法获取第一节点的设备标识,可以实现较好的密钥隐私保护。
第二密钥密文可以存储于本地数据库中,本地数据库为区块链中第一节点的本地数据库,且本地数据库位于第一节点的可信执行环境外。以便于再次加密时查询使用,如此,便可减少属性加密的过程,提高加密效率。
可选地,在步骤S102中,获取第一密钥包括:
确定本地数据库中是否存储有第二密钥密文;
若存储有所述第二密钥密文,使用第三解密算法对所述第二密钥密文进行解密,得到所述第一密钥;
若未存储所述第二密钥密文,生成所述第一密钥。
由于第二密钥密文是在在可信执行环境中加密得到的,目标数据也在可信执行环境中进行加密,因此,通过确定本地数据库中是否存储有第二密钥密文,可以在对目标数据进行加密时,判断第一密钥是否被使用过,在第一密钥被使用过的情况下,可以直接利用本地数据库中的第二密钥密文得到第一密钥,以减少属性加密过程,提高加密效率。
具体地,若本地数据库中存储有所述第二密钥密文,则表明第一密钥被使用过,此时,可以直接使用第三解密算法对所述第二密钥密文进行解密,得到所述第一密钥,即使用对称解密方式得到第一密钥,无需使用属性解密,提高密钥解密效率。
其中,第一密钥被使用过可以表示使用第一密钥进行加密为非首次加密。非首次加密既可以表示上述目标数据为非首次加密,即之前使用第一密钥对该目标数据进行加密过;也可以在区块链中的其他数据与目标数据共用第一密钥时,表示区块链中的其他数据被加密过,即之前使用第一密钥对其他数据进行解密过。
第一密钥被使用过也可以表示使用第一密钥进行解密为非首次解密。例如,发送方可以在可信执行环境中使用第一密钥对第一加密数据进行解密,得到第一目标数据,并对使用过的第一密钥进行加密得到第三密钥密文,将第三密钥密文存储于本地数据库中;当发送方需要对与第一目标数据共用第一密钥的第二目标数据进行加密时,可以确定本地数据库中是否存储有第三密钥密文,然后采用相应的解密方式获得第一密钥,从而对第二目标数据进行解密。
第一密钥是否被使用过,只要满足可信执行环境下第一密钥是否非首次使用即可。
若本地数据库中未存储所述第二密钥密文,则表明第一密钥未被使用过,此时,需要生成第一密钥以对目标数据进行加密。
其中,在确认存在待发送的目标数据之后,生成密钥种子,基于密钥种子生成第一密钥。密钥种子可以随机生成,例如,随机生成随机数作为密钥种子;密钥种子也可以按照设定的规则生成。将随机生成的随机数作为密钥种子,可以保证每次发送目标数据时所生成的随机数不同,从而使得每次加密目标数据所采用的第一密钥不同,进而有利于提高目标数据的安全性。
在一些实施例中,所述方法还包括:使用第二加密算法对所述第一密钥进行加密,得到所述第一密钥密文。
其中,使用第二加密算法对所述第一密钥进行加密,得到所述第一密钥密文在目标数据首次加密时进行。
步骤S102中,确定本地数据库中未存储有第二密钥密文,表明目标数据为首次加密,生成第一密钥后,使用第二加密算法对所述第一密钥进行加密,得到所述第一密钥密文。该第一密钥密文可以发送至接收方,也可以存储于区块链中,在发送方接收到接收方的发送请求时,将其发送至接收方。
生成第一密钥后,还使用第三加密算法对所述第一密钥进行加密,得到所述第二密钥密文。第二密钥密文存储于第一节点的本地数据库中,以便于目标数据再次加密发送时使用。
步骤S102中,确定本地数据库中存储有所述第二密钥密文时,表明该目标数据为非首次加密,可以直接查找、调用首次加密时得到的第一密钥密文,并将其发送至发送方。
上述数据处理方法应用于发送方,目标数据可以明文的形式存储于各节点中,在发送方和接收方建立连接时,发送方对目标数据进行加密,并将用于加密所述目标数据的第一密钥以第一密钥密文的形式与加密后的加密数据一起发送至接收方,可以实现区块链数据更好的细粒度隐私保护。
图2为本申请实施例的另一数据处理方法的流程图。如图2所示,基于上述应用于发送方的数据处理方法,本申请实施例提供一种数据处理方法,应用于接收方,所述方法包括:
S201、接收发送方发送的加密数据和第一密钥密文。
S202、对所述第一密钥密文进行解密,得到第一密钥。
S203、使用所述第一密钥和第一解密算法对所述加密数据进行解密,得到目标数据。
其中,所述加密数据为使用所述第一密钥和第一加密算法对所述目标数据进行加密得到的,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的,所述第一加密算法的效率大于所述第二加密算法的效率。
接收方可以是区块链中不同于第一节点的第二节点,第二节点可以是一个节点,也可以是多个节点。
接收方接收的加密数据为发送方通过上述数据处理方法得到的加密数据,接收方接收的第一密钥密文为发送方通过使用上述的第二加密算法对第一密钥进行加密得到的第一密钥密文。
第一密钥为用于将加密数据转换为目标数据的参数,即由密文转换为明文的参数。该第一密钥与上述发送方发送目标数据时所使用的第一密钥相同。
本申请实施例中,接收方接收发送方发送的加密数据和第一密钥密文后,可以对第一密钥密文进行逆处理(解密)得到第一密钥,并使用第一密钥和第一解密算法对加密数据进行逆处理(解密),得到目标数据。发送方与接收方之间以密文的形式进行数据和密钥传输,可以保证区块链数据加密传输过程的安全性;同时,使用效率较高的第一加密算法对目标数据进行加密,使用效率较低的第二加密算法对第一密钥进行加密可以有效提高数据加密传输效率。
发送方将加密后的加密数据和第一密钥密文发送至接收方后,由于接收方和发送方为不同的节点,二者的可信执行环境不同,在跨可信执行环境进行首次交易时,接收方需要对第一密钥密文进行解密,得到第一密钥。
其中,所述加密数据的数据量大于所述第一密钥密文的数据量。
发送方在对目标数据和第一密钥进行加密时,目标数据的数据量大于所述第一密钥的数据量。在加密过程中,使用效率更高的第一加密算法对数据量较大的目标数据进行加密,使用效率较低的第二加密算法对数据量较小的第一密钥进行加密,可以提高整个加密过程中的数据处理效率,从而提高数据传输效率,使得数据量较大的加密数据快速传输至接收方,提高区块链系统的整体效率。
由于第一解密算法和第一加密算法相对应,第二解密算法和第一加密算法相对应,第一解密算法的效率可以大于第二解密算法的效率,在解密过程中,使用效率更高的第一解密算法对数据量较大的加密数据进行解密,使用效率较低的第二解密算法对数据量较小的第一密钥进行解密,可以提高整个解密密过程中的数据处理效率。
可选地,所述第一加密算法为对称加密算法,所述第二加密算法为属性加密算法。对称加密算法的效率大于属性加密算法的效率。
相应地,第一解密算法为对称解密算法,第二解密算法为属性解密算法。
发送方使用对称加密对目标数据进行加密可以对区块链各节点中的隐私数据进行保护,只有与发送方相连接的接收方才能获得解密后的目标数据,可以实现更加细粒度的隐私保护;且对称加密的效率较高,可以提高数据传输效率,从而提高区块链交易过程中的效率。
发送方使用属性加密算法对第一密钥进行加密得到第一密钥密文,接收方使用属性解密算法对接收的第一密钥密文进行解密得到第一密钥,基于变化的策略可以实现第一密钥的动态更改,解决对称加密密钥传输带来的密钥泄露的问题,且属性加密提供了更加灵活的访问结构,可以实现第一密钥密文的动态访问控制。
在一些实施例中,所述方法还包括:使用第三加密算法对所述第一密钥进行加密,得到第三密钥密文。
接收方在接收到加密数据和第一密钥密文后,对加密数据进行解密,需要获取第一密钥,由于第一密钥密文是使用属性加密算法得到的,当接收方接收第一密钥密文后,需要采用与属性加密算法相对应的属性解密算法对第一密钥进行解密,进而对加密数据进行解密。由于使用属性加密、解密算法存在一定的耗时,为提高区块链的系统效率,可以使用第三加密算法对所述第一密钥进行加密,得到第三密钥密文,以便于加密数据的解密。
进一步地,使用第三加密算法对所述第一密钥进行加密,得到第三密钥密文包括:
在可信执行环境内,使用第三密钥和第三加密算法对所述第一密钥进行加密,得到所述第三密钥密文。
其中,可信执行环境为第二节点中的创建的,第三密钥为用于对第一密钥进行加密或解密的参数,第三密钥在可信执行环境内基于设备标识推导出,即第三密钥可以基于第二节点的设备标识推导出。设备标识可以为设备ID、设备序列号等。
可选地,第三加密算法为对称加密算法,第三密钥密文的加密过程可以表示为:Skey2=Enc(key,c2),其中,Skey2为第三密钥密文,Enc()表示加密,key为待加密的第一密钥,c2为第三密钥。
由于第三密钥基于设备标识推导出,因此,采用对称加密算法对第一密钥进行加密时,其他节点或终端设备无法获取第二节点的设备标识,可以实现较好的密钥隐私保护。
第三密钥密文可以存储于本地数据库中,本地数据库为区块链中第二节点的本地数据库,且本地数据库位于第二节点的可信执行环境外。以便于再次解密时查询使用,如此,便可减少属性解密的过程,提高解密效率。
步骤S202中,所述对所述第一密钥密文进行解密,得到第一密钥包括:
确定本地数据库中是否存储有第三密钥密文;
若存储有所述第三密钥密文,使用第三解密算法对所述第三密钥密文进行解密,得到第一密钥;
若未存储所述第三密钥密文,使用第二解密算法对所述第一密钥密文进行解密,得到第一密钥。
具体地,由于第三密钥密文是在接收方的可信执行环境中加密得到的,加密数据也在可信执行环境中进行解密,因此,通过确定本地数据库中是否存储有第三密钥密文,可以确定第一密钥是否被使用过。
若本地数据库中存储有所述第三密钥密文,则表明第一密钥被使用过,此时,可以直接使用第三解密算法对所述第三密钥密文进行解密,得到第一密钥,即使用对称解密得到第一密钥。
其中,第一密钥被使用过可以表示使用第一密钥进行解密为非首次解密。非首次解密既可以表示上述加密数据为非首次解密,即之前使用第一密钥对该加密数据进行解密过;也可以在区块链中的其他数据与加密数据共用第一密钥时,表示区块链中的其他数据被解密过,即之前使用第一密钥对其他数据进行解密过。
第一密钥被使用过也可以表示使用第一密钥进行加密为非首次加密。例如,可以在可信执行环境中使用第一密钥对第一数据进行加密,并对第一密钥进行加密得到第三密钥密文,将第三密钥密文存储于本地数据库中,当需要对与第一数据共用第一密钥的第二数据进行解密时,可以确定本地数据库中是否存储有第三密钥密文,然后采用相应的解密方式获得第一密钥,从而对第二数据进行解密。
第一密钥是否被使用过,只要满足可信执行环境下第一密钥是否非首次使用即可。
其中,使用第三解密算法对所述第三密钥密文进行解密的过程可以表示为:key=Dec(Skey2,c2),其中,key为解密后的第一密钥,Dec()表示解密,Skey2为第三密钥密文,c2为第三密钥。即在可信执行环境中非首次使用第一密钥时,可以跳过属性解密,直接使用第三解密算法对本地数据库中存储的第三密钥密文进行解密得到第一密钥。
若本地数据库中未存储所述第三密钥密文,则表明第一密钥被使用过,此时,由于接收方和发送方的可信执行环境不同,因此,在跨可信执行环境进行首次交易时,接收方需要对第一密钥密文进行解密,得到第一密钥,以对加密数据进行解密。
其中,对第一密钥密文进行解密的过程可以表示为:key=Dec(Akey,sk,PK),其中,key为目标数据,Dec()表示解密,PK为公钥,可以在系统初始化时获得,sk为私钥。
在进行属性解密时,首先对系统进行初始化,得到主密钥mk和公钥PK;然后,根据用户属性集,使用算法KeyGen(PK,mk,Attr),生成私钥sk,其中,Attr表示用户的属性集,KeyGen()为密钥生成算法;之后,使用属性解密算法对第一密钥密文进行解密。
进一步地,在对第一密钥密文进行解密,得到第一密钥后,需要使用第三加密算法对所述第一密钥进行加密,得到第三密钥密文,以便下次解密使用。
解密得到的第一密钥可以存储于区块链中,加密得到的第三密钥密文可以存储于本地数据库中。
本申请实施例中,接收方在接收到加密数据和第一密钥密文后,对加密数据进行解密,需要获取第一密钥,此时,由于第二加密算法为属性加密算法,接收方使用与属性加密算法对应的属性解密算法对第一密钥密文进行解密,得到第一密钥时,更加耗时,因此,尽量减少解密过程中属性解密的频率。即可以通过判断本地数据库中是否存储有第三密钥密文,在存储有第三密钥密文时,对第三密钥密文进行解密来得到第一密钥,在未存储有第三密钥密文时,才使用属性解密对第一密钥密文进行解密,可以提高区块链系统的效率。
在一些实施例中,所述方法还包括:使用第二加密算法对所述第一密钥进行加密,得到所述第一密钥密文。
其中,使用第二加密算法对所述第一密钥进行加密,得到所述第一密钥密文在发送方对目标数据首次加密时进行。
发送方在确定其本地数据库中未存储有第二密钥密文,表明目标数据为首次加密,生成第一密钥,并使用第二加密算法对所述第一密钥进行加密,得到所述第一密钥密文,然后将该第一密钥密文发送至接收方。
上述数据处理方法应用于发送方和接收方,数据处理方法也可应用于数据写入方和读取方,以实现数据的写入存储和读取。
图3为本申请实施例的又一数据处理方法的流程图。如图3所示,本申请实施例提供一种数据处理方法,应用于数据的写入方,所述方法包括:
S301、获取目标数据。
写入方可以为区块链中的第一节点,目标数据可以为待写入的账本数据。
获取目标数据包括:接收目标数据的写入请求。
S302、获取第一密钥。
第一密钥为用于将待写入的目标数据转换为加密数据的参数。
第一密钥可以为预设的密钥;也可以是根据需要生成的,如随机生成的密钥,或者按照设定的规则生成的密钥。
S303、使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据。
在可信执行环境中,使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据。
其中,可信执行环境在区块链的节点中创建,本实施例中,可信执行环境可以为第一节点中创建的可信执行环境。
S304、将所述加密数据和第一密钥密文存储。
其中,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的;所述第一加密算法的效率大于所述第二加密算法的效率。
目标数据写入后,可以以密文的形式存储于写入方,例如存储于区块链的第一节点中,区块链中的其他节点无法直接查看写入的目标数据,当其他节点读取该目标数据时,需要对与该目标数据对应的加密数据进行解密。第一密钥密文也可以存储于写入方,以便于读取方读取。
本申请实施例中,在数据写入过程中,通过使用第一密钥和第一加密算法对目标数据进行加密得到加密数据,并将加密后的加密数据与使用第二加密算法对第一密钥进行加密得到的第一密钥密文进行存储,可以对写入的区块链数据进行加密保护,提高数据写入的安全性;同时,加密过程中,使用效率较高的第一加密算法对目标数据进行加密,使用效率较低的第二加密算法对第一密钥进行加密,可以有效提高数据写入效率。
上述应用于数据的写入方的数据处理方法与上述应用于发送方的数据处理方法类似,在此不再详细介绍。
图4为本申请实施例的又一数据处理方法的流程图。如图4所示,本申请实施例提供一种数据处理方法,应用于数据的读取方,所述方法包括:
S401、读取写入方写入的加密数据和第一密钥密文。
S402、对所述第一密钥密文进行解密,得到第一密钥。
S403、使用所述第一密钥和第一解密算法对所述加密数据进行解密,得到目标数据。
其中,所述加密数据为使用所述第一密钥和第一加密算法对所述目标数据进行加密得到的,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的,所述第一加密算法的效率大于所述第二加密算法的效率。
读取方可以是区块链中的第二节点,第二节点可以是一个节点,也可以是多个节点。
读取方读取的加密数据为写入方通过上述应用于写入方的数据处理方法得到的加密数据,读取方读取的第一密钥密文为写入方通过使用上述的第二加密算法对第一密钥进行加密得到的第一密钥密文。
第一密钥为用于将加密数据转换为目标数据的参数,即由密文转换为明文的参数。该第一密钥与上述写入方写入目标数据时所使用的第一密钥相同。
本申请实施例中,读取方读取写入方写入的加密数据和第一密钥密文后,可以对第一密钥密文进行逆处理(解密)得到第一密钥,并使用第一密钥和第一解密算法对加密数据进行逆处理(解密),得到目标数据。目标数据以密文的形式存储于写入方,读取方读取时需要对密文进行解密得到目标数据,可以保证数据写入和读取的安全性;同时,使用效率较高的第一加密算法对目标数据进行加密,使用效率较低的第二加密算法对第一密钥进行加密可以有效提高数据读取效率。
上述应用于数据的读取方的数据处理方法与上述应用于接收方的数据处理方法类似,在此不再详细介绍。
图5为本申请一个实施例的数据处理装置的结构示意图。如图5所示,本申请实施例提供一种数据处理装置,应用于发送方,所述装置包括:
第一获取模块501,用于获取目标数据;
第二获取模块502,用于获取第一密钥;
加密模块503,用于使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据;
发送模块504,用于将所述加密数据和第一密钥密文发送至接收方;
其中,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的;所述第一加密算法的效率大于所述第二加密算法的效率。
由于本申请实施例提供的数据处理装置与本申请实施例中应用于发送方的数据处理方法相对应,因此,基于本申请实施例中的数据处理方法,本领域的技术人员能够了解本申请实施例中数据处理装置具体实施方式以及其各种变化形式,所以在此对于该数据处理装置不再详细介绍。只要本领域所述技术人员实施本申请实施例中应用于的数据处理方法的数据处理装置,都属于本申请所欲保护的范围。
图6为本申请一个实施例的终端设备的结构示意图。如图6所示,该终端设备可以为区块链中的节点。该终端设备至少包括:
数据接口601,用于获取目标数据;
处理器602,用于获取第一密钥;使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据;将所述加密数据和第一密钥密文发送至接收方;其中,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的;所述第一加密算法的效率大于所述第二加密算法的效率。
该终端设备还可以包括存储器603,该存储器用于存储处理器执行操作所需的程序。
存储器603中还可以存储使用第三加密算法对所述第一密钥进行加密,得到的第二密钥密文。
处理器602可以确定存储器603中是否存储有第二密钥密文;
若存储有所述第二密钥密文,使用第三解密算法对所述第二密钥密文进行解密,得到所述第一密钥;若未存储所述第二密钥密文,生成所述第一密钥;并在得到第一密钥后对所述目标数据进行加密,得到加密数据,实现数据加密传输。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。
Claims (10)
1.一种数据处理方法,所述方法包括:
获取目标数据;
获取第一密钥;
使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据;
将所述加密数据和第一密钥密文发送至接收方;
其中,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的;所述第一加密算法的效率大于所述第二加密算法的效率。
2.如权利要求1所述的方法,所述目标数据的数据量大于所述第一密钥的数据量。
3.如权利要求1所述的方法,所述方法还包括:使用第三加密算法对所述第一密钥进行加密,得到第二密钥密文。
4.如权利要求1所述的方法,所述获取第一密钥包括:
确定本地数据库中是否存储有第二密钥密文;
若存储有所述第二密钥密文,使用第三解密算法对所述第二密钥密文进行解密,得到所述第一密钥;
若未存储所述第二密钥密文,生成所述第一密钥。
5.如权利要求3所述的方法,所述使用第三加密算法对所述第一密钥进行加密,得到第二密钥密文包括:
在可信执行环境内,使用第二密钥和第三加密算法对所述第一密钥进行加密,得到所述第二密钥密文。
6.如权利要求1所述的方法,所述第一加密算法为对称加密算法,所述第二加密算法为属性加密算法。
7.如权利要求1所述的方法,所述方法还包括:使用第二加密算法对所述第一密钥进行加密,得到所述第一密钥密文。
8.一种数据处理方法,所述方法包括:
接收发送方发送的加密数据和第一密钥密文;
对所述第一密钥密文进行解密,得到第一密钥;
使用所述第一密钥和第一解密算法对所述加密数据进行解密,得到目标数据;
其中,所述加密数据为使用所述第一密钥和第一加密算法对所述目标数据进行加密得到的,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的,所述第一加密算法的效率大于所述第二加密算法的效率。
9.如权利要求8所述的方法,所述方法还包括:使用第三加密算法对所述第一密钥进行加密,得到第三密钥密文。
10.一种数据处理装置,包括:
第一获取模块,获取目标数据;
第二获取模块,获取第一密钥;
加密模块,使用所述第一密钥和第一加密算法对所述目标数据进行加密,得到加密数据;
发送模块,将所述加密数据和第一密钥密文发送至接收方;
其中,所述第一密钥密文为使用第二加密算法对所述第一密钥进行加密得到的;所述第一加密算法的效率大于所述第二加密算法的效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010518702.4A CN111680326A (zh) | 2020-06-09 | 2020-06-09 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010518702.4A CN111680326A (zh) | 2020-06-09 | 2020-06-09 | 一种数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111680326A true CN111680326A (zh) | 2020-09-18 |
Family
ID=72455020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010518702.4A Pending CN111680326A (zh) | 2020-06-09 | 2020-06-09 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111680326A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114884716A (zh) * | 2022-04-28 | 2022-08-09 | 世融能量科技有限公司 | 加密解密方法、装置及介质 |
WO2023046207A1 (zh) * | 2021-09-27 | 2023-03-30 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、装置及计算机非易失性可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624522A (zh) * | 2012-03-30 | 2012-08-01 | 华中科技大学 | 一种基于文件属性的密钥加密方法 |
CN109934579A (zh) * | 2018-11-30 | 2019-06-25 | 上海点融信息科技有限责任公司 | 用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备 |
CN110110548A (zh) * | 2019-04-12 | 2019-08-09 | 深圳市中易通安全芯科技有限公司 | 基于加密芯片的可信执行环境下文件加密存储的相关方法 |
WO2019227557A1 (zh) * | 2018-06-01 | 2019-12-05 | 平安科技(深圳)有限公司 | 密钥管理方法、设备、存储介质及装置 |
CN110798315A (zh) * | 2019-11-11 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置及终端 |
CN111131311A (zh) * | 2019-12-31 | 2020-05-08 | 北京中电普华信息技术有限公司 | 基于区块链的数据传输方法及区块链节点 |
-
2020
- 2020-06-09 CN CN202010518702.4A patent/CN111680326A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624522A (zh) * | 2012-03-30 | 2012-08-01 | 华中科技大学 | 一种基于文件属性的密钥加密方法 |
WO2019227557A1 (zh) * | 2018-06-01 | 2019-12-05 | 平安科技(深圳)有限公司 | 密钥管理方法、设备、存储介质及装置 |
CN109934579A (zh) * | 2018-11-30 | 2019-06-25 | 上海点融信息科技有限责任公司 | 用于区块链网络的密钥生成方法、签名方法、存储介质、计算设备 |
CN110110548A (zh) * | 2019-04-12 | 2019-08-09 | 深圳市中易通安全芯科技有限公司 | 基于加密芯片的可信执行环境下文件加密存储的相关方法 |
CN110798315A (zh) * | 2019-11-11 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置及终端 |
CN111131311A (zh) * | 2019-12-31 | 2020-05-08 | 北京中电普华信息技术有限公司 | 基于区块链的数据传输方法及区块链节点 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023046207A1 (zh) * | 2021-09-27 | 2023-03-30 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、装置及计算机非易失性可读存储介质 |
CN114884716A (zh) * | 2022-04-28 | 2022-08-09 | 世融能量科技有限公司 | 加密解密方法、装置及介质 |
CN114884716B (zh) * | 2022-04-28 | 2024-02-27 | 世融能量科技有限公司 | 加密解密方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7225220B2 (ja) | 記憶データ暗号化/復号化装置及び方法 | |
Brakerski et al. | Overcoming the hole in the bucket: Public-key cryptography resilient to continual memory leakage | |
EP1676281B1 (en) | Efficient management of cryptographic key generations | |
US20170046281A1 (en) | Address dependent data encryption | |
US11030119B2 (en) | Storage data encryption and decryption apparatus and method | |
US20080285747A1 (en) | Encryption-based security protection method for processor and apparatus thereof | |
CN104834868A (zh) | 电子数据保护方法、装置及终端设备 | |
US11115181B2 (en) | Memory device, host device, and memory system | |
US7617402B2 (en) | Copyright protection system, encryption device, decryption device and recording medium | |
US11405202B2 (en) | Key processing method and apparatus | |
CN111680326A (zh) | 一种数据处理方法及装置 | |
CN103177224A (zh) | 用于终端的外接存储卡数据保护的方法及装置 | |
JP4328748B2 (ja) | 鍵更新方法、鍵隔離型暗号システム及び端末装置 | |
JPH104403A (ja) | 暗号化装置、復号化装置およびその方法 | |
CN107872312B (zh) | 对称密钥动态生成方法、装置、设备及系统 | |
US11550927B2 (en) | Storage data encryption/decryption apparatus and method | |
JP5850888B2 (ja) | 情報記憶システム、情報記憶装置、その方法、及びプログラム | |
KR20220000537A (ko) | 차량 네트워크 기반의 데이터 송수신 시스템 및 그 방법 | |
KR101666746B1 (ko) | 컴퓨팅 장치의 도난 및 부정 접근으로부터 컴퓨팅 장치 내의 데이터를 안전하게 보호할 수 있는 데이터 보호 시스템 및 방법 | |
JP2003244131A (ja) | 鍵管理装置、鍵管理方法、鍵管理プログラムおよび当該鍵管理プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2001125481A (ja) | 暗号通信端末、暗号通信センター装置及び暗号通信システム並びに記録媒体 | |
CN115955306B (zh) | 一种数据加密传输方法、装置、电子设备及存储介质 | |
Sarma | An Asymmetric Key based Disk Encryption Scheme | |
WO2022201966A1 (ja) | 暗号鍵生成装置、暗号鍵生成プログラムおよび暗号鍵生成・消去方法 | |
JP3164347B2 (ja) | Icタグ |
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 |