基于对称和非对称混合加密的区块链隐私保护方法及装置与流程

文档序号:14749788发布日期:2018-06-22 11:24阅读:227来源:国知局

本发明涉及到区块链数据加密领域,特别是涉及到一种基于对称和非对称混合加密的区块链隐私保护方法及装置。



背景技术:

区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,用于存储区块链网络上所有用户的账户,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。

现有的区块链技术,用户的账户余额或者敏感数据没有经过加密直接存储在区块上,导致用户的敏感信息完全暴露在所有节点上,比如用户在发起转账交易时,交易信息中的交易金额也是完全公开的。这种方式在实现了区块链去中心化、信息不可篡改的基本功能外,用户的账户隐私完暴露在区块链的所有节点上。

很明显,没有人希望自己的账户信息完全暴露在所有人面前,因此,我们引入加密技术来有效的保证区块链上用户的隐私。



技术实现要素:

为了解决上述现有技术的缺陷,本发明的目的是提供一种基于对称和非对称混合加密的区块链隐私保护方法及装置,用于解决区块链交易数据加密的问题。

为达到上述目的,本发明的技术方案是:

一种基于对称和非对称混合加密的区块链隐私保护方法,包括以下步骤:

接收交易请求;

获取加密密钥;

获取具备查看权限的交易方的公钥;

使用所述公钥分别单独加密加密密钥,为密钥数据指定识别ID上传区块链;

使用加密密钥对交易数据进行加密,并将加密后的交易数据关联所述识别ID上传区块链;

交易接收方根据交易数据携带的识别ID,获取对应的密钥数据,并使用与本方公钥对应的私钥解密密钥数据,得到加密密钥;

使用得到的加密密钥对加密后的交易数据进行解密,得到交易数据。

进一步地,所述获取加密密钥步骤,包括,

识别是否已经存在对应的加密钥;

若已经存在,则调用已存在的加密密钥;

若不存在,则生成新的加密密钥。

进一步地,所述获取具备查看权限的交易方的公钥步骤之前,包括,

设定具备查看权限的交易方。

进一步地,所述密钥数据内包括有使用不同公钥加密后的加密密钥数据、对应的公钥的信息、识别ID以及交易双方的用户信息。

进一步地,所述使用得到的加密密钥对加密后的交易数据进行解密,得到交易数据步骤之后,包括,

根据交易数据处理交易;

使用加密密钥加密交易结果,并关联识别ID上传区块链。

本发明还提出了一种基于对称和非对称混合加密的区块链隐私保护装置,包括:

请求接收单元,用于接收交易请求;

密钥获取单元,用于获取加密密钥;

公钥获取单元,用于获取具备查看权限的交易方的公钥;

密钥加密单元,用于使用所述公钥分别单独加密加密密钥,为密钥数据指定识别ID上传区块链;

交易加密单元,用于使用加密密钥对交易数据进行加密,并将加密后的交易数据关联所述识别ID上传区块链;

密钥解密单元,用于交易接收方根据交易数据携带的识别ID,获取对应的密钥数据,并使用与本方公钥对应的私钥解密密钥数据,得到加密密钥;

交易解密单元,用于使用得到的加密密钥对加密后的交易数据进行解密,得到交易数据。

进一步地,所述密钥获取单元包括识别模块、调用模块和新建模块,

所述识别模块,用于识别否已经存在对应的加密密钥;

所述调用模块,用于若经存在对应的加密密钥,调用已存在的加密密钥;

所述新建模块,用于若不存在对应的加密密钥,则生成新的加密密钥。

进一步地,还包括设定单元,用于设定具备查看权限的交易方。

进一步地,所述密钥数据内包括有使用不同公钥加密后的加密密钥数据、对应的公钥的信息、识别ID以及交易双方的用户信息。

进一步地,还包括:

交易处理单元,用于根据交易数据处理交易;

结果加密单元,用于使用加密密钥加密交易结果,并关联识别ID上传区块链。

本发明的有益效果是:通过使用具备权限的交易方的公钥和私钥对加密密钥进行加解密,进而得到加密密钥对交易数据进行加解密,保证交易数据在区块链上只对具备查看权限的用户可见,提高了交易数据的安全性和保密性。

附图说明

图1为本发明一实施例一种基于对称和非对称混合加密的区块链隐私保护方法的方法流程图;

图2为本发明一实施例一种识别是否存在加密密钥的方法流程图;

图3为本发明另一实施例一种基于对称和非对称混合加密的区块链隐私保护方法的方法流程图;

图4为本发明一实施例一种基于对称和非对称混合加密的区块链隐私保护装置的结构框图;

图5为本发明一实施例密钥获取单元的结构框图。

具体实施方式

为阐述本发明的思想及目的,下面将结合附图和具体实施例对本发明做进一步的说明。

参照图1和图2,本发明一实施例提出一种基于对称和非对称混合加密的区块链隐私保护方法,包括以下步骤:

S10、接收交易请求。

S11、获取加密密钥。

S12、获取具备查看权限的交易方的公钥。

S13、使用公钥分别单独加密加密密钥,为密钥数据指定识别ID上传区块链。

S14、使用加密密钥对交易数据进行加密,并将加密后的交易数据关联识别ID上传区块链。

S15、交易接收方根据交易数据携带的识别ID,获取对应的密钥数据,并使用与本方公钥对应的私钥解密密钥数据,得到加密密钥。

S16、使用得到的加密密钥对加密后的交易数据进行解密,得到交易数据。

对于步骤S10,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,用于存储区块链网络上所有用户的账户,不同账户之间可以进行直接的交易,同时交易信息会存储于区块链上的节点上,同时保持对所有节点可见。链上的账户发起交易请求,交易请求中包括有交易数据,具体包含有交易双方账户信息(也可为多方)、交易额度(如100、10000或333等)、货币类型(如美元、欧元、人民币或虚拟货币)、以及交易时间等信息。接收到来自账户的交易请求后,才能够启动交易程序。

对于步骤S11,在接收到交易请求后,获取一加密用的加密密钥,加密密钥用于后续加密交易数据中的隐私信息,使得只有拥有加密密钥的用户才能给个查看具体的交易信息,例如,上链前,使用加密密钥对交易数据中的交易额度信息进行加密,上链后,交易额度信息一行就会以乱码或被遮挡的形式展示在所有的节点下,除了拥有对应加密密钥的用户,否则都无法查看。

参考图2,具体的步骤S11包括以下步骤:

S111、识别是否已经存在对应的加密密钥。

S112、若已经存在,则调用已存在的加密密钥。

S113、若不存在,则生成新的加密密钥。

对于步骤S111,识别加密密钥是否已经存在时,具体可以通过检索参与该使用该加密密钥的所有交易方账户,查看参与该交易的交易方之前是否已经进行过交易,若果进行过交易,则必然存在有已经使用过的加密密钥,可以直接调用,也可以重新生成一新的加密密钥,用于后续对交易数据加密。

具体的,如果当前进行交易的所有参与方为账户A和B,则在区块链上查找只包含账户A和B的密钥数据,如已经有存在的密钥数据,再根据该密钥数据得到对应加密密钥。当然,如果交易方为账户C和F,也查找只包含账户C和F的密钥数据。

对于步骤S112,在步骤S111识别到交易存在时,可根据该交易数据进一步找到对应加密密钥,并选择直接调用或者重新生成新的加密密钥,用于后续对交易数据加密。

对于步骤S113,在步骤S111识别到交易不存在,为第一次存在的交易,则只能直接生成新的加密密钥,用于后续对交易数据加密。

对于步骤S12,获取具备查看权限的交易方公钥,具体的,参与交易的交易方是肯定具备查看权限的,而在一些具体的情况下,会存在交易监管方,其需要查看所有交易的具体交易数据,或者,交易方的上司部门,也需要保持对于下属部门交易数据的监控,当然也可以根据需要自行设置其他账户的查看权限,即使该账户与交易参与方毫无相关利益关系。因此,根据具备查看权限的交易方的具体情况,获取对应的公钥,每个账户的公钥都是公开于区块链节点上,全部用户都可以根据账户名称直接获取其他账户发布的公钥信息,同时,每发布一个公钥,该账户本身生成并存储有一个对应的私钥,不对外公开只有账户本身才能查看。公钥加密文件后,可以使用私钥对文件进行解密,直接得到被加密的文件。

这里获取具备查看权限的交易方公钥,用于使用不同的公钥对加密密钥进行单独加密,并得到不同公钥单独加密后的密钥数据。

对于步骤S13,使用来自不同交易方的公钥对加密密钥进行单独加密,这样,对应的,只有拥有上述交易方任意一个对应的私钥就可以实现数据解密,得到加密密钥,既保护加密密钥不公开,同时具备查看权限的交易方,也可以直接使用自身的私钥进行解密密钥数据,得到加密密钥。

同时,密钥数据关联识别ID上传区块链,接收到交易数据(携带对应的识别ID)的账户就可以通过识别ID在区块链上找到密钥数据,并通过本地的私钥解密密钥数据,得到加密密钥,进而对加密后的交易数据进行解密。

密钥数据内包括有使用不同公钥加密后的加密密钥数据、对应的公钥的信息、识别ID以及交易双方的用户信息。

对于步骤S14,在获取到加密密钥之后,就可以使用加密密钥对交易数据进行加密,加密的时候,会对交易的敏感字段,例如交易额度、货币类型(以及交易内容等信息进行加密,使交易数据上链后,具体交易信息可以被所有人查看,保证交易数据的安全性和保密性。

同时,交易数据内携带有识别ID,该识别ID与对应的密钥数据的识别ID一致,交易接收方在接收到加密后的交易数据后,可以根据其携带的识别ID找到对应的密钥数据,简单直接。

具体的,步骤S13和步骤S14可以同时进行,也可以先后进行,只需要保证都携带有相同的识别ID即可。

对于步骤S15,交易接收方在接收到加密后的交易数据后,可以根据其携带的识别ID找到对应的密钥数据,简单直接。并通过本地的私钥解密密钥数据,得到加密密钥,进而对加密后的交易数据进行解密,得到完整的交易数据。

具体的,密钥数据内还携带有具体的公钥的信息,根据具体的公钥信息,找到对应的私钥,用于解密密钥数据。因为,每个账户发布的公钥/私钥是可以同时存在有多对的,但是,每个公钥都会而且只会对应一个私钥。本方案利用公钥/私钥一一对应的特点来实现对应加密密钥的加密,保证了只有具备查看权限的交易方才能查看具体交易数据,提高了交易数据的安全性和保密性。

对于步骤S16,最后得到一开始用于加密的加密密钥来解密交易数据,保证了只有具备查看权限的交易方才能查看具体交易数据,提高了交易数据的安全性和保密性。

另外,本发明方案不局限于只应用于交易数据的加密,也可以应用于区块链上其他常规数据的加密,可以全部加密,也可以只对具体的敏感字段进行加密。

本发明方案通过使用具备权限的交易方的公钥和私钥对加密密钥进行加解密,进而得到加密密钥对交易数据进行加解密,保证交易数据在区块链上只对具备查看权限的用户可见,提高了交易数据的安全性和保密性。

参考图3,提出本本发明另一实施例提出一种基于对称和非对称混合加密的区块链隐私保护方法,包括以下步骤:

S20、接收交易请求;

S21、获取加密密钥;

S22、设定具备查看权限的交易方。

S23、获取具备查看权限的交易方的公钥;

S24、使用公钥分别单独加密加密密钥,为密钥数据指定识别ID上传区块链;

S25、使用加密密钥对交易数据进行加密,并将加密后的交易数据关联识别ID上传区块链;

S26、交易接收方根据交易数据携带的识别ID,获取对应的密钥数据,并使用与本方公钥对应的私钥解密密钥数据,得到加密密钥;

S27、使用得到的加密密钥对加密后的交易数据进行解密,得到交易数据。

S28、根据交易数据处理交易;

S29、使用加密密钥加密交易结果,并关联识别ID上传区块链。

对于步骤S22,具体的,参与交易的交易方是肯定具备查看权限的,而在一些具体的情况下,会存在交易监管方,其需要查看所有交易的具体交易数据,或者,交易方的上司部门,也需要保持对于下属部门交易数据的监控,当然也可以根据需要自行设置其他账户的查看权限,即使该账户与交易参与方毫无相关利益关系。但是,在本实施例中,具备查看权限的交易方至少包括参与交易双方和监管方。

对于步骤S28,在得到具体交易数据之后,交易接收方根据具体的交易数据对应处理交易,并完成整个交易。

对于步骤S29,交易完成后,将交易结果使用加密密钥加密后,再上传到区块链的节点,同时分发到各个账户,同样保护的交易结果,提高了交易的安全性和保密性,避免不相关的人员或组织获取过多信息。

,本方案通过使用具备权限的交易方的公钥和私钥对加密密钥进行加解密,进而得到加密密钥对交易数据进行加解密,保证交易数据在区块链上只对具备查看权限的用户可见,提高了交易数据的安全性和保密性。

参考图4-图5,本发明还提出了一种基于对称和非对称混合加密的区块链隐私保护装置,包括:

请求接收单元10,用于接收交易请求;

密钥获取单元20,用于获取加密密钥;

设定单元30,用于设定具备查看权限的交易方,至少包括参与交易双方和监管方。

公钥获取单元40,用于获取具备查看权限的交易方的公钥;

密钥加密单元50,用于使用公钥分别单独加密加密密钥,为密钥数据指定识别ID上传区块链;

交易加密单元60,用于使用加密密钥对交易数据进行加密,并将加密后的交易数据关联识别ID上传区块链;

密钥解密单元70,用于交易接收方根据交易数据携带的识别ID,获取对应的密钥数据,并使用与本方公钥对应的私钥解密密钥数据,得到加密密钥;

交易解密单元80,用于使用得到的加密密钥对加密后的交易数据进行解密,得到交易数据。

交易处理单元90,用于根据交易数据处理交易;

结果加密单元100,用于使用加密密钥加密交易结果,并关联识别ID上传区块链。

对于请求接收单元10,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,用于存储区块链网络上所有用户的账户,不同账户之间可以进行直接的交易,同时交易信息会存储于区块链上的节点上,同时保持对所有节点可见。链上的账户发起交易请求,交易请求中包括有交易数据,具体包含有交易双方账户信息(也可为多方)、交易额度(如100、10000或333等)、货币类型(如美元、欧元、人民币或虚拟货币)、以及交易时间等信息。接收到来自账户的交易请求后,才能够启动交易程序。

对于密钥获取单元20,在接收到交易请求后,获取一加密用的加密密钥,加密密钥用于后续加密交易数据中的隐私信息,使得只有拥有加密密钥的用户才能给个查看具体的交易信息,例如,上链前,使用加密密钥对交易数据中的交易额度信息进行加密,上链后,交易额度信息一行就会以乱码或被遮挡的形式展示在所有的节点下,除了拥有对应加密密钥的用户,否则都无法查看。

密钥获取单元20包括识别模块21、调用模块22和新建模块23。

识别模块21,用于识别是否已经存在对应的加密密钥。

调用模块22,用于若已经存在对应的加密密钥,调用已存在的加密密钥。

新建模块23,用于若不存在对应的加密密钥,则生成新的加密密钥。

对于识别模块21,识别交易是否已经存在时,具体可以通过检索参与该交易的所有交易方账户,查看参与该交易的交易方之前是否已经进行过交易,若果进行过交易,则必然存在有已经使用过的加密密钥,可以直接调用,也可以重新生成一新的加密密钥,用于后续对交易数据加密。

具体的,如果当前进行交易的所有参与方为账户A和B,则在区块链上查找只包含账户A和B的密钥数据,如已经有存在的密钥数据,再根据该密钥数据找到对应的加密密钥。当然,如果交易方为账户C和F,也查找只包含账户C和F的密钥数据。

对于调用模块22,在识别模块21识别到交易存在时,可根据该交易数据进一步找到对应加密密钥,并选择直接调用或者重新生成新的加密密钥,用于后续对交易数据加密。

对于新建模块23,在识别模块21识别到交易不存在,为第一次存在的交易,则只能直接生成新的加密密钥,用于后续对交易数据加密。

对于设定单元30,具体的,参与交易的交易方是肯定具备查看权限的,而在一些具体的情况下,会存在交易监管方,其需要查看所有交易的具体交易数据,或者,交易方的上司部门,也需要保持对于下属部门交易数据的监控,当然也可以根据需要自行设置其他账户的查看权限,即使该账户与交易参与方毫无相关利益关系。但是,在本实施例中,具备查看权限的交易方至少包括参与交易双方和监管方。

对于公钥获取单元40,获取具备查看权限的交易方公钥,具体的,参与交易的交易方是肯定具备查看权限的,而在一些具体的情况下,会存在交易监管方,其需要查看所有交易的具体交易数据,或者,交易方的上司部门,也需要保持对于下属部门交易数据的监控,当然也可以根据需要自行设置其他账户的查看权限,即使该账户与交易参与方毫无相关利益关系。因此,根据具备查看权限的交易方的具体情况,获取对应的公钥,每个账户的公钥都是公开于区块链节点上,全部用户都可以根据账户名称直接获取其他账户发布的公钥信息,同时,每发布一个公钥,该账户本身生成并存储有一个对应的私钥,不对外公开只有账户本身才能查看。公钥加密文件后,可以使用私钥对文件进行解密,直接得到被加密的文件。

这里获取具备查看权限的交易方公钥,用于使用不同的公钥对加密密钥进行单独加密,并得到不同公钥单独加密后的密钥数据。

对于密钥加密单元50,使用来自不同交易方的公钥对加密密钥进行单独加密,这样,对应的,只有拥有上述交易方任意一个对应的私钥就可以实现数据解密,得到加密密钥,既保护加密密钥不公开,同时具备查看权限的交易方,也可以直接使用自身的私钥进行解密密钥数据,得到加密密钥。

同时,密钥数据关联识别ID上传区块链,接收到交易数据(携带对应的识别ID)的账户就可以通过识别ID在区块链上找到密钥数据,并通过本地的私钥解密密钥数据,得到加密密钥,进而对加密后的交易数据进行解密。

密钥数据内包括有使用不同公钥加密后的加密密钥数据、对应的公钥的信息、识别ID以及交易双方的用户信息。

对于交易加密单元60,在获取到加密密钥之后,就可以使用加密密钥对交易数据进行加密,加密的时候,会对交易的敏感字段,例如交易额度、货币类型(以及交易内容等信息进行加密,使交易数据上链后,具体交易信息可以被所有人查看,保证交易数据的安全性和保密性。

同时,交易数据内携带有识别ID,该识别ID与对应的密钥数据的识别ID一致,交易接收方在接收到加密后的交易数据后,可以根据其携带的识别ID找到对应的密钥数据,简单直接。

对于密钥解密单元70,交易接收方在接收到加密后的交易数据后,可以根据其携带的识别ID找到对应的密钥数据,简单直接。并通过本地的私钥解密密钥数据,得到加密密钥,进而对加密后的交易数据进行解密,得到完整的交易数据。

具体的,密钥数据内还携带有具体的公钥的信息,根据具体的公钥信息,找到对应的私钥,用于解密密钥数据。因为,每个账户发布的公钥/私钥是可以同时存在有多对的,但是,每个公钥都会而且只会对应一个私钥。本方案利用公钥/私钥一一对应的特点来实现对应加密密钥的加密,保证了只有具备查看权限的交易方才能查看具体交易数据,提高了交易数据的安全性和保密性。

对于交易解密单元80,最后得到一开始用于加密的加密密钥来解密交易数据,保证了只有具备查看权限的交易方才能查看具体交易数据,提高了交易数据的安全性和保密性。

对于交易处理单元90,在得到具体交易数据之后,交易接收方根据具体的交易数据对应处理交易,并完成整个交易。

对于结果加密单元100,交易完成后,将交易结果使用加密密钥加密后,再上传到区块链的节点,同时分发到各个账户,同样保护的交易结果,提高了交易的安全性和保密性,避免不相关的人员或组织获取过多信息。

另外,本发明方案不局限于只应用于交易数据的加密,也可以应用于区块链上其他常规数据的加密,可以全部加密,也可以只对具体的敏感字段进行加密。

本发明方案通过使用具备权限的交易方的公钥和私钥对加密密钥进行加解密,进而得到加密密钥对交易数据进行加解密,保证交易数据在区块链上只对具备查看权限的用户可见,提高了交易数据的安全性和保密性。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1