掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链的数据加解密方法、装置及相关设备

文献发布时间:2023-06-19 10:18:07


基于区块链的数据加解密方法、装置及相关设备

技术领域

本公开涉及区块链技术领域,尤其涉及一种基于区块链的数据加解密方法及装置、电子设备和计算机可读存储介质。

背景技术

区块链技术也称为分布式账本技术,是一种分布式互联网数据库技术。基于区块链技术构建的网络可以称之为区块链网络,在该区块链网络中包含网络节点(也可以称之为区块链节点,以下简称为节点),各个节点对应的节点设备均存储有全量的区块链。相关技术中的区块链网络(或者区块链技术)具备去中心化、公开透明、不可篡改、可信任等特点。基于这些特点,区块链技术应用领域越来越广泛。

随着区块链技术的发展,在一些应用场景下需要对链上的交易内容进行保护。目前,对链上数据进行加密保护的通用方法都是数据发送方随机生成一个加密密码,然后使用加密密码将需要上链的明文信息进行随机加密处理得到密文,然后该数据发送方将密文发送到区块链上。与此同时,数据发送方需要使用线下的方式,如邮件,短信等电子通讯或书写邮寄的方式,将解密密码发送给密文接收方。接收方拿到链上密文后,再使用线下接收到的解密密码解密密文。

通过上述方法进行数据的加解密操作存在以下几个问题:

1、给接收方发送解密密码时,需要知道对方的额外通讯信息,如邮箱、手机号或者邮寄地址;

2、如果解密密码在传输过程中被拦截,信息存在安全风险;

3、如果用户之间发送的密文存在违规不合法的内容,监管部门无法监管。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。

发明内容

本公开实施例提供一种基于区块链的数据加密方法、装置、电子设备和计算机可读存储介质,能够保证数据接收方和监管方安全、便捷地拿到目标明文数据,以提高对数据的保护。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

本公开实施例提出一种基于区块链的数据加密方法,所述方法可以包括:数据发送方从目标区块链的智能合约中获取数据接收方加密公钥和总监管方加密公钥;其中,所述数据发送方拥有自己的发送方加密私钥;生成随机加密密码,并使用所述随机加密密码对目标明文数据进行随机加密处理,以得到所述目标明文数据的随机加密密文;利用所述数据发送方的发送方加密私钥和所述数据接收方加密公钥对所述随机加密密码进行初阶集成加密处理,以生成所述数据接收方的加密密码密文;利用所述数据发送方的发送方加密私钥和总监管方加密公钥对所述随机加密密码进行进阶集成加密处理,以生成总监管方的加密密码密文;通过所述数据发送方的发送方加密私钥对所述目标明文数据的随机加密密文、所述数据接收方的加密密码密文以及所述总监管方的加密密码密文进行上链签名处理;将经过所述上链签名处理后的目标明文数据的随机加密密文、数据接收方的加密密码密文以及总监管方的加密密码密文上链发送至所述目标区块链的智能合约。

本公开实施例提供了一种基于区块链的数据解密方法,所述方法可以应用于子监管方,所述方法可以包括:从目标区块链的智能合约中获取目标明文数据的随机加密密文、总监管方的加密密码密文和数据发送方的发送方加密公钥,所述总监管方的加密密码密文和所述发送方加密公钥均与所述目标明文数据的随机加密密文对应,所述总监管方的加密密码密文是通过所述数据发送方的发送方加密私钥和总监管方加密公钥对随机加密密码进行随机加密后生成的,所述目标明文数据的随机加密密文是通过所述随机加密密码进行随机加密后生成的;从所述智能合约中获取子监管方加密密钥片和M个共享密钥片,其中对总监管方加密私钥进行分片处理后获得N个隐私密钥片和所述M个共享密钥片,所述子监管方加密密钥片是通过合约管理方加密私钥、子监管方加密公钥对所述N个隐私密钥片中分配给所述子监管方的子监管方密钥片进行随机加密后生成的,N为大于或者等于1的正整数,M为大于或者等于0的整数;从所述智能合约中获取合约管理方加密公钥;使用子监管方加密私钥、所述合约管理方加密公钥解密所述子监管方加密密钥片以获得所述子监管方密钥片;利用所述子监管方密钥片、所述M个共享密钥片以及所述发送方加密公钥对所述总监管方的加密密码密文进行解密处理,以获得所述随机加密密码;使用所述随机加密密码解密所述目标明文数据的随机加密密文,获得所述目标明文数据。

本公开实施例提供了一种基于区块链的数据解密方法,所述方法可以应用于数据接收方,所述方法可以包括:从目标区块链的智能合约中获取数据接收方的加密密码密文、目标明文数据的随机加密密文以及发送方加密公钥,所述数据接收方的加密密码密文包括所述数据接收方的原始加密密码密文和所述数据接收方的原始加密密码密文的标签;使用所述数据接收方的数据接收方加密私钥及所述发送方加密公钥生成接收方加密密钥和接收方消息认证码密钥;使用所述接收方消息认证码密钥对所述接收方的原始加密密码密文的标签进行验证;验证通过后,使用所述接收方加密密钥解密所述接收方的原始加密密码密文,以获得随机加密密码;使用所述随机加密密码解密所述目标明文数据的随机加密密文,获得所述目标明文数据。

本公开实施例提供了一种基于区块链的数据加密装置,所述基于区块链的数据加密装置可以包括:接收方公钥获取模块、随机密码生成模块、接收方的加密密码密文生成模块、总监管方的加密密码密文生成模块以及目标明文数据的随机加密密文签名模块。

其中,所述接收方公钥获取模块可以配置为数据发送方从目标区块链的智能合约中获取数据接收方加密公钥和总监管方加密公钥,其中所述数据发送方拥有自己的发送方加密私钥;所述随机密码生成模块可以配置为生成随机加密密码,并使用所述随机加密密码对目标明文数据进行随机加密处理,以得到所述目标明文数据的随机加密密文;所述接收方的加密密码密文生成模块可以配置为利用所述数据发送方的发送方加密私钥和所述数据接收方加密公钥对所述随机加密密码进行初阶集成加密处理,以生成所述数据接收方的加密密码密文;所述总监管方的加密密码密文生成模块可以配置为利用所述数据发送方的发送方加密私钥和总监管方加密公钥对所述随机加密密码进行进阶集成加密处理,以生成总监管方的加密密码密文;所述目标明文数据的随机加密密文签名模块可以配置为通过所述数据发送方的发送方加密私钥对所述目标明文数据的随机加密密文、所述数据接收方的加密密码密文以及所述总监管方的加密密码密文进行上链签名处理;所述目标明文数据的随机加密密文发送模块可以配置为将经过所述上链签名处理后的目标明文数据的随机加密密文、数据接收方的加密密码密文以及总监管方的加密密码密文上链发送至所述目标区块链的智能合约。

在一些实施例中,所述总监管方加密公钥是总监管方的公钥;所述基于区块链的数据加密装置还可以包括:密钥片加密密文获取模块、密钥片加密密文解密模块、子监管方密钥片分配模块、子监管方加密公钥获取模块、子监管方加密密钥片生成模块、子监管方加密密钥片签名模块以及子监管方加密密钥片上链模块。

其中,所述密钥片加密密文获取模块可以配置为合约管理方从所述智能合约中获取密钥片加密密文,所述密钥片加密密文是通过合约管理方加密私钥对总监管方加密私钥对应的N个隐私密钥片进行加密后获得的,N为大于等于1的正整数;所述密钥片加密密文解密模块可以配置为利用所述合约管理方加密私钥对所述密钥片加密密文进行解密处理,以获得所述N个隐私密钥片;所述子监管方密钥片分配模块可以配置为在所述N个隐私密钥片中随机确定一个未分配密钥片,以作为子监管方的子监管方密钥片;所述子监管方加密公钥获取模块可以配置为从所述智能合约中获取所述子监管方的子监管方加密公钥;所述子监管方加密密钥片生成模块可以配置为利用所述合约管理方加密私钥和所述子监管方加密公钥对所述子监管方密钥片进行随机加密处理,以获得子监管方加密密钥片;所述子监管方加密密钥片签名模块可以配置为利用所述合约管理方加密私钥对所述子监管方加密密钥片和所述子监管方加密公钥进行上链签名处理;所述子监管方加密密钥片上链模块可以配置为将经过所述上链签名处理后的所述子监管方加密密钥片和所述子监管方加密公钥上链发送至所述目标区块链的智能合约,以便所述智能合约将所述子监管方加密公钥与所述子监管方加密密钥片进行绑定操作,通过所述绑定操作确定所述未分配密钥片已被分配给所述子监管方。

在一些实施例中,所述密钥片加密密文获取模块可以包括:总监管方加密私钥获取单元、分片处理单元、隐私密钥片加密处理单元、密钥片加密密文签名处理单元以及密钥片加密密文上链单元。

其中,所述总监管方加密私钥获取单元可以配置为所述合约管理方获取所述总监管方加密私钥;所述分片处理单元可以配置为将所述总监管方加密私钥进行分片处理,以获得所述N个隐私密钥片和M个共享密钥片,M为大于或者等于0的整数;所述隐私密钥片加密处理单元可以配置为通过所述合约管理方加密私钥对所述N个隐私密钥片进行随机加密处理,以获得所述密钥片加密密文;所述密钥片加密密文签名处理单元可以配置为通过所述合约管理方加密私钥对所述密钥片加密密文和所述M个共享密钥片进行上链签名处理;所述密钥片加密密文上链单元可以配置为将签名后的所述密钥片加密密文和所述M个共享密钥片上链发送至所述智能合约。

在一些实施例中,所述子监管方加密密钥片是通过所述子监管方的旧加密公钥进行随机加密后获得的,对所述子监管方的旧加密公钥进行更新后获得所述子监管方的新加密公钥;所述基于区块链的数据加密装置还可以包括:子监管方的旧加密公钥获取模块、子监管方加密密钥片提取模块、旧加密公钥加密模块、新加密公钥加密模块以及子监管方加密密钥片更新模块。

其中,所述子监管方的旧加密公钥获取模块可以配置为所述合约管理方从所述智能合约中获取所述子监管方的旧加密公钥;所述子监管方加密密钥片提取模块可以配置为根据所述子监管方的旧加密公钥从所述智能合约中获取所述子监管方加密密钥片;所述旧加密公钥加密模块可以配置为利用所述合约管理方加密私钥和所述子监管方的旧加密公钥对所述子监管方加密密钥片进行解密处理,以获得所述子监管方密钥片;所述新加密公钥加密模块可以配置为利用所述合约管理方加密私钥和所述子监管方的新加密公钥对所述子监管方密钥片进行随机加密处理,以更新所述子监管方加密密钥片;所述子监管方加密密钥片更新模块可以配置为利用所述合约管理方加密私钥对更新后的子监管方加密密钥片和所述子监管方的新加密公钥进行上链签名处理,并将签名后的所述子监管方加密密钥片和所述子监管方的新加密公钥上链发送至所述目标区块链的智能合约中,以便所述智能合约将所述子监管方的新加密公钥与更新后的所述子监管方加密密钥片进行绑定。

在一些实施例中,所述接收方的加密密码密文生成模块可以包括:接收方消息认证码密钥生成单元、数据接收方的原始加密密码密文生成单元。

其中,所述接收方消息认证码密钥生成单元可以配置为利用所述发送方加密私钥及所述数据接收方加密公钥生成接收方加密密钥和接收方消息认证码密钥;所述数据接收方的原始加密密码密文生成单元可以配置为利用所述接收方加密密钥对所述随机加密密码进行加密获得所述数据接收方的原始加密密码密文,并使用所述接收方消息认证码密钥生成所述数据接收方的原始加密密码密文的标签,组合所述数据接收方的原始加密密码密文和所述数据接收方的原始加密密码密文的标签获得所述数据接收方的加密密码密文。

在一些实施例中,所述总监管方的加密密码密文生成模块可以包括:总监管方消息认证码密钥生成单元和总监管方的原始加密密码密文生成单元。

其中,所述总监管方消息认证码密钥生成单元可以配置为利用所述发送方加密私钥及所述总监管方加密公钥生成总监管方加密密钥和总监管方消息认证码密钥;所述总监管方的原始加密密码密文生成单元可以配置为利用所述总监管方加密密钥对所述随机加密密码进行加密获得总监管方的原始加密密码密文,并使用所述总监管方消息认证码密钥生成所述总监管方的原始加密密码密文的标签,组合所述总监管方的原始加密密码密文和所述总监管方的原始加密密码密文的标签获得所述总监管方的加密密码密文。

在一些实施例中,所述基于区块链的数据加密装置还可以包括:发送方地址接收模块、地址判断模块以及存储模块。

其中,所述发送方地址接收模块可以配置为所述智能合约接收所述数据发送方上传的签名后的目标明文数据的随机加密密文、数据接收方的加密密码密文、总监管方的加密密码密文以及数据发送方地址和发送方加密公钥;所述地址判断模块可以配置为所述智能合约利用公钥生成地址规则判断所述数据发送方地址与根据所述发送方加密公钥生成的地址是否一致;所述存储模块可以配置为若一致,所述目标区块链将经过所述上链签名处理后的目标明文数据的随机加密密文、数据接收方的加密密码密文以及总监管方的加密密码密文存储在所述智能合约中。

本公开实施例提供了一种基于区块链的数据解密装置。所述基于区块链的数据解密装置可以应用于子监管方。所述基于区块链的数据解密装置可以包括:发送方加密公钥获取模块、共享密钥片获取模块、合约管理方加密公钥获取模块、解密子监管方加密密钥片模块、随机加密密码获取第一模块以及目标明文数据第一获取模块。

其中,所述发送方加密公钥获取模块可以配置为从目标区块链的智能合约中获取目标明文数据的随机加密密文、总监管方的加密密码密文和数据发送方的发送方加密公钥,所述总监管方的加密密码密文和所述发送方加密公钥均与所述目标明文数据的随机加密密文对应,所述总监管方的加密密码密文是通过所述数据发送方的发送方加密私钥和总监管方加密公钥对随机加密密码进行随机加密后生成的,所述目标明文数据的随机加密密文是通过所述随机加密密码进行随机加密后生成的;所述共享密钥片获取模块可以配置为从所述智能合约中获取子监管方加密密钥片和M个共享密钥片,其中对总监管方加密私钥进行分片处理后获得N个隐私密钥片和所述M个共享密钥片,所述子监管方加密密钥片是通过合约管理方加密私钥、子监管方加密公钥对所述N个隐私密钥片中分配给所述子监管方的子监管方密钥片进行随机加密后生成的,N为大于或者等于1的正整数,M为大于或者等于0的整数;所述合约管理方加密公钥获取模块可以配置为从所述智能合约中获取合约管理方加密公钥;所述解密子监管方加密密钥片模块可以配置为使用子监管方加密私钥、所述合约管理方加密公钥解密所述子监管方加密密钥片以获得所述子监管方密钥片;所述随机加密密码获取第一模块可以配置为利用所述子监管方密钥片、所述M个共享密钥片以及所述发送方加密公钥对所述总监管方的加密密码密文进行解密处理,以获得所述随机加密密码;所述目标明文数据第一获取模块可以配置为使用所述随机加密密码解密所述目标明文数据的随机加密密文,获得所述目标明文数据。

在一些实施例中,所述随机加密密码获取第一模块可以包括:联合解密单元和随机加密密码确定单元。

其中,所述联合解密单元可以配置为通过所述子监管方密钥片和所述M个共享密钥片确定所述总监管方加密私钥;所述随机加密密码确定单元可以配置为利用所述总监管方加密私钥和所述发送方加密公钥对所述总监管方的加密密码密文进行解密处理,以获得所述随机加密密码。

在一些实施例中,所述总监管方的加密密码密文包括所述总监管方的原始加密密码密文和所述总监管方的原始加密密码密文的标签,所述总监管方的原始加密密码密文是通过监管方加密密钥对所述随机加密密码进行加密后生成的,所述总监管方的原始加密密码密文的标签是通过总监管方消息认证码密钥生成的,所述监管方加密密钥和所述总监管方消息认证码密钥是通过发送方加密私钥和总监管方加密公钥生成的;其中,所述随机加密密码确定单元可以包括:总监管方加密密钥确定子单元、标签验证子单元以及总监管方的原始加密密码解密单元。

其中,所述总监管方加密密钥确定子单元可以配置为根据监管方加密私钥和所述发送方加密公钥生成所述总监管方加密密钥和所述总监管方消息认证码密钥;所述标签验证子单元可以配置为通过所述总监管方消息认证码密钥对所述总监管方的原始加密密码密文的标签进行验证;所述总监管方的原始加密密码解密单元可以配置为验证通过后,利用所述总监管方加密密钥对所述总监管方的原始加密密码密文进行解密处理,以获得所述随机加密密码。

本公开实施例提供一种基于区块链的数据解密装置。所述基于区块链的数据解密装置可以应用于数据接收方。所述基于区块链的数据解密装置可以包括:数据接收方的加密密码密文获取模块、接收方加密密钥确定模块、接收方的原始加密密码密文的标签验证模块、接收方的原始加密密码密文解密模块以及目标明文数据第二获取模块。

其中,所述数据接收方的加密密码密文获取模块可以配置为从目标区块链的智能合约中获取数据接收方的加密密码密文、目标明文数据的随机加密密文以及发送方加密公钥,所述数据接收方的加密密码密文包括所述数据接收方的原始加密密码密文和所述数据接收方的原始加密密码密文的标签;所述接收方加密密钥确定模块可以配置为使用所述数据接收方的数据接收方加密私钥及所述发送方加密公钥生成接收方加密密钥和接收方消息认证码密钥;所述接收方的原始加密密码密文的标签验证模块可以配置为使用所述接收方消息认证码密钥对所述接收方的原始加密密码密文的标签进行验证;所述接收方的原始加密密码密文解密模块可以配置为验证通过后,使用所述接收方加密密钥解密所述接收方的原始加密密码密文,以获得随机加密密码;所述目标明文数据第二获取模块可以配置为使用所述随机加密密码解密所述目标明文数据的随机加密密文,获得所述目标明文数据。

本公开实施例提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的基于区块链的数据加密方法。

本公开实施例提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述任一项所述的基于区块链的数据加、解密方法。

本公开实施例提出一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于区块链的数据加、解密方法。

本公开某些实施例提供的基于区块链的数据加密方法、装置及电子设备和计算机可读存储介质,在随机加密密码对目标明文数据进行随机加密后,一方面使用发送方加密私钥和数据接收方加密公钥对该随机加密密码进行随机加密处理,以保证数据接收方解密后获得到的目标明文数据是正确且未被篡改的,保护了用户的隐私;另一方面通过发送方加密私钥和总监管方加密公钥对随机加密密码进行随机加密处理,以保证监管方能够安全、准确地获得目标明文数据,进而使得监管方能够对目标明文数据进行有效监管。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示是根据一示例性实施例示出的一种适应于基于区块链的数据加、解密方法的系统架构的示意图。

图2是根据一示例性实施例示出用来实现基于区块链的数据加、解密方法的电子设备的计算机系统的结构示意图。

图3是根据一示例性实施例示出的一种基于区块链的数据加密方法的流程图。

图4是根据一示例性实施例示出的对总监管方加密私钥的密钥片进行分配处理的方法的示意图。

图5是根据一示例性实施例示出的一种基于区块链的数据解密方法的流程图。

图6是根据一示例性实施例示出的一种基于区块链的数据解密方法的流程图。

图7是根据一示例性实施例示出的一种通过区块链存储用户公钥的方法示意图。

图8是根据一示例性实施例示出的一种对总监管方加密私钥进行分片处理方法示意图。

图9是根据一示例性实施例示出的一种对总监管方加密私钥的密钥片进行分配处理的方法示意图。

图10是根据一示例性实施例示出的一种对子监管方加密密钥片进行更新的方法示意图。

图11是根据一示例性实施例示出的一种基于区块链的数据加密方法的流程图。

图12是根据一示例性实施例示出的一种接收方解密方法的流程图。

图13是根据一示例性实施例示出的一种子监管方解密方法的流程图。

图14是根据一示例性实施例示出的一种基于区块链的数据加密装置的框图。

图15是根据一示例性实施例示出的一种基于区块链的数据解密装置的框图。

图16是根据一示例性实施例示出的一种基于区块链的数据解密装置的框图。

具体实施方式

现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

本公开所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。

附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

本说明书中,用语“一个”、“一”、“该”、“所述”和“至少一个”用以表示存在一个或多个要素/组成部分/等;用语“包含”、“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”、“第二”和“第三”等仅作为标记使用,不是对其对象的数量限制。

下面结合附图对本公开示例实施方式进行详细说明。

图1示是根据一示例性实施例示出的一种适应于基于区块链的数据加、解密方法或基于区块链的数据加、解密装置的系统架构的示意图。该系统包括:若干个终端设备和区块链150,其中若干个终端设备可例如是数据发送方终端110、数据接收方终端120、总监管方终端130或者子监管方终端140。

其中,图1中的终端设备(例如数据发送方终端110、数据接收方终端120、总监管方终端130或者子监管方终端140)可以是手机、游戏主机、平板电脑、电子书阅读器、智能眼镜、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、智能家居设备、AR(Augmented Reality,增强现实)设备、VR(VirtualReality,虚拟现实)设备等移动终端,或者,也可以是个人计算机(Personal Computer,PC),比如膝上型便携计算机和台式计算机等等。

其中,用户(例如数据发送方、数据接收方、总监管方或者子监管方)可以通过终端(例如数据发送方终端110、数据接收方终端120、总监管方终端130或者子监管方终端140)与区块链150之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。

可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(ExtensibleMarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(InternetProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。

区块链150中可以包括多个节点设备,该节点设备可以是终端设备也可以是服务器设备,本公开对此不做限制。其中,服务器设备可以由若干台服务器组成,可以是一个虚拟化平台,还可以是一个云计算服务中心,本公开对此不做限制。

应该理解,图1中的数据发送方终端、数据接收方终端、子监管方终端、网络的数目等仅仅是示意性的,根据实际需要,可以具有任意数目的数据发送方终端、数据接收方终端、子监管方终端、网络等。

在本公开实施例中,数据发送方可以通过数据发送方终端110从目标区块链150智能合约中获取数据接收方加密公钥和总监管方加密公钥,其中所述数据发送方拥有自己的发送方加密私钥;生成随机加密密码,并使用所述随机加密密码对目标明文数据进行随机加密处理,以得到所述目标明文数据的随机加密密文;利用所述数据发送方的发送方加密私钥和所述数据接收方加密公钥对所述随机加密密码进行初阶集成加密处理,以生成所述数据接收方的加密密码密文;利用所述数据发送方的发送方加密私钥和总监管方加密公钥对所述随机加密密码进行进阶集成加密处理,以生成总监管方的加密密码密文;通过所述数据发送方的发送方加密私钥对所述目标明文数据的随机加密密文、所述数据接收方的加密密码密文以及所述总监管方的加密密码密文进行上链签名处理;将经过所述上链签名处理后的目标明文数据的随机加密密文、数据接收方的加密密码密文以及总监管方的加密密码密文上链发送至所述目标区块链的智能合约。

在本公开实施例中,数据接收方可以通过数据接收方终端120从目标区块链150的智能合约中获取数据接收方的加密密码密文、目标明文数据的随机加密密文以及发送方加密公钥,所述数据接收方的加密密码密文包括所述数据接收方的原始加密密码密文和所述数据接收方的原始加密密码密文的标签;使用所述数据接收方的数据接收方加密私钥及所述发送方加密公钥生成接收方加密密钥和接收方消息认证码密钥;使用所述接收方消息认证码密钥对所述接收方的原始加密密码密文的标签进行验证;验证通过后,使用所述接收方加密密钥解密所述接收方的原始加密密码密文,以获得随机加密密码;使用所述随机加密密码解密所述目标明文数据的随机加密密文,获得所述目标明文数据。

在本公开实施例中,监管方可以通过监管方终端130从目标区块链150的智能合约中获取目标明文数据的随机加密密文、总监管方的加密密码密文和发送方加密公钥;通过监管方加密私钥和发送方加密私钥对总监管方的加密密码密文进行解密,以获得随机加密密码;使用随机加密密码对目标明文数据的随机加密密文进行解密,以获得目标明文数据。

在本公开实施例中,子监管方可以通过子监管方终端140从目标区块链150的智能合约中获取目标明文数据的随机加密密文、总监管方的加密密码密文和数据发送方的发送方加密公钥,所述总监管方的加密密码密文和所述发送方加密公钥均与所述目标明文数据的随机加密密文对应,所述总监管方的加密密码密文是通过所述数据发送方的发送方加密私钥和总监管方加密公钥对随机加密密码进行随机加密后生成的,所述目标明文数据的随机加密密文是通过所述随机加密密码进行随机加密后生成的;从所述智能合约中获取子监管方加密密钥片和M个共享密钥片,其中对总监管方加密私钥进行分片处理后获得N个隐私密钥片和所述M个共享密钥片,所述子监管方加密密钥片是通过合约管理方加密私钥、子监管方加密公钥对所述N个隐私密钥片中分配给所述子监管方的子监管方密钥片进行随机加密后生成的,N为大于或者等于1的正整数,M为大于或者等于0的整数;从所述智能合约中获取合约管理方加密公钥;使用子监管方加密私钥、所述合约管理方加密公钥解密所述子监管方加密密钥片以获得所述子监管方密钥片;利用所述子监管方密钥片、所述M个共享密钥片以及所述发送方加密公钥对所述总监管方的加密密码密文进行解密处理,以获得所述随机加密密码;使用所述随机加密密码解密所述目标明文数据的随机加密密文,获得所述目标明文数据。

本公开涉及的是一种基于区块链的加解密方法,其中区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(例如维护本公开实施例中涉及的发送方公私钥、接收方公私钥以及监管方公私钥等)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑(例如本公开实施例中使用智能合约判断数据发送方地址与根据公钥生成的地址是否一致;再例如判断是否接受上链数据等),同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。

平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。

下面参考图2,其示出了适于用来实现本申请实施例的终端设备或者服务器的计算机系统200的结构示意图。图2示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图2所示,计算机系统200包括中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从储存部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有计算机系统200操作所需的各种程序和数据。CPU 201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。

以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的储存部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入储存部分208。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的系统中限定的上述功能。

需要说明的是,本申请所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的模块和/或单元和/或子单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元和/或子单元也可以设置在处理器中,例如,可以描述为:一种处理器包括发送单元、获取单元、确定单元和第一处理单元。其中,这些模块和/或单元和/或子单元的名称在某种情况下并不构成对该模块和/或单元和/或子单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备可实现功能包括:数据发送方从目标区块链的智能合约中获取数据接收方加密公钥和总监管方加密公钥;生成随机加密密码,并使用所述随机加密密码加密目标明文数据,获得目标明文数据的随机加密密文;利用数据发送方加密私钥和所述数据接收方加密公钥对所述随机加密密码进行随机加密处理,以生成接收方的加密密码密文;利用所述数据发送方加密私钥和所述监管方加密公钥对所述随机加密密码进行处理,以生成总监管方的加密密码密文;通过所述数据发送方加密私钥对所述目标明文数据的随机加密密文、所述接收方的加密密码密文以及所述总监管方的加密密码密文进行签名;将签名后的目标明文数据的随机加密密文、接收方的加密密码密文以及总监管方的加密密码密文发送至所述智能合约。

在阐述本公开提供的实施例之前,首先对实施例中涉及的名词进行解释。

数据发送方,可以指的是对目标明文数据进行加密、发送的用户,该数据发送方具备非对称的发送方加密私钥和发送方加密公钥;

数据接收方,可以指的是对目标明文数据的随机加密密文进行接收、解密的用户,该数据接收方具备非对称的数据接收方加密私钥和数据接收方加密公钥;

总监管方,可以指的是对目标明文数据具有监管权限的监管方,总监管方具备非对称的总监管方加密私钥和总监管方加密公钥,例如可以将政府有关监管部门设置为总监管方,也可以将某个公司的监管机构设置为总监管方,本公开对此不做限制;

子监管方,可以指的是对目标明文数据具有监管权限的监管方,子监管方具备非对称的子监管方加密私钥和子监管方加密公钥,例如可以将某政府有关监管部门的子机构设置为子监管方,也可以将某个公司的子公司的监管机构设置为子监管方,本公开对此不做限制;

需要注意的是,本公开对总监管方和子监管方之间的关系不做限定,总监管方和子监管方之间可以存在从属的关系,也可以是并列关系,本公开对此不做限定。

合约管理方,是具备删除和增加子监管方的权限的用户,合约管理方还可以向子监管方分配加密密钥片,合约管理方具备非对称的合约管理方加密私钥和合约管理方加密公钥。

图3是根据一示例性实施例示出的一种基于区块链的数据加密方法的流程图。本实施例所提供的方法可以由数据发送方对应的设备来实现,该数据发送方对应的设备可以是任意具有计算处理能力的电子设备,例如可以是图1实施例中的数据发送方终端110,也可以是服务器,也可以由服务器和终端设备共同执行,在下面的实施例中,以数据发送方终端110执行主体为例进行举例说明,但本公开并不限定于此。

参照图3,本公开实施例提供的基于区块链的数据加密方法可以包括以下步骤。

在步骤S1中,数据发送方从目标区块链的智能合约中获取数据接收方加密公钥和总监管方加密公钥,其中所述数据发送方拥有自己的发送方加密私钥。

在一些实施例中,本公开实施例涉及的数据发送方、数据接收方、总监管方以及子监管方对应的设备均可以是目标区块链上的节点设备。

在一些实施例中,在数据发送方从目标区块链的智能合约中获取数据接收方加密公钥或者总监管方加密公钥之前,可以先对数据接收方加密公钥和总监管方加密公钥可以进行上链处理。

那么,在数据接收方加密公钥或者总监管方加密公钥上链过程中,为了确保数据接收方加密公钥或者总监管方加密公钥不被非法操作、确实来自于接收方或者总监管方,本公开实施例采用了以下方法。

用户(例如数据发送方、数据接收方、总监管方或者子监管方)通过自身的私钥对自身的公钥进行签名;将签名后的公钥(例如数据接收方加密公钥或者总监管方加密公钥等)发送给目标区块链的智能合约;该智能合约通过公钥生成地址规则、根据用户的公钥生成用户的地址;该智能合约利用公钥生成地址规则判断发送公钥的地址与根据公钥生成的地址是否一致;若一致,则该智能合约允许用户的公钥上链。

其中,公钥生成地址可以是设置在智能合约中的一段规则,根据该规则一方面可以根据公钥生成用户的地址,另一方面可以对发送公钥的地址与根据公钥生成的地址的一致性进行判断。

在另外一些实施例中,数据发送方还可以通过数据发送方设备直接从数据接收方和总监管方处获得数据接收方加密公钥和总监管方加密公钥,本公开对数据接收方加密公钥和总监管方加密公钥的获取方式不做限制。

在步骤S2中,生成随机加密密码,并使用所述随机加密密码对目标明文数据进行随机加密处理,以得到所述目标明文数据的随机加密密文。

目标明文数据是待上链的数据,本公开对目标明文数据的具体内容不做限制。

在一些实施例中,数据发送方可以通过一些随机算法生成一些随机数,以作为随机机密密码,本公开对随机加密密码的类型、大小等不做限制。

在一些实施例中,当数据发送方生成随机加密密码后,会利用该随机加密密码对目标明文数据进行随机加密处理,以生成目标明文数据的随机加密密文,本公开对随机加密处理的处理方式不做限定。

在步骤S3中,利用所述数据发送方的发送方加密私钥和所述数据接收方加密公钥对所述随机加密密码进行初阶集成加密处理,以生成所述数据接收方的加密密码密文。

在一些实施例中,利用所述数据发送方的发送方加密私钥和所述数据接收方加密公钥对所述随机加密密码进行初阶集成加密处理可以采用以下方法:

数据发送方利用数据发送方加密私钥及数据接收方加密公钥生成接收方加密密钥(ek)和接收方消息认证码密钥(MAC密钥mk);利用接收方加密密钥(ek)对随机加密密码进行随机加密获得数据接收方的原始加密密码密文,并使用接收方消息认证码密钥(MAC密钥mk)生成接收方的原始加密密码密文的标签,组合数据接收方的原始加密密码密文和数据接收方的原始加密密码密文的标签获得数据接收方的加密密码密文。

在步骤S4中,利用所述数据发送方的发送方加密私钥和总监管方加密公钥对所述随机加密密码进行进阶集成加密处理,以生成总监管方的加密密码密文。

在一些实施例中,利用所述数据发送方的发送方加密私钥和总监管方加密公钥对所述随机加密密码进行进阶集成加密处理可以采用以下方法:

利用数据发送方加密私钥及总监管方加密公钥生成总监管方加密密钥(ek)和总监管方消息认证码密钥(MAC密钥mk);利用总监管方加密密钥对随机加密密码进行加密获得总监管方的原始加密密码密文,并使用总监管方消息认证码密钥(MAC密钥mk)生成总监管方的原始加密密码密文的标签,组合总监管方的原始加密密码密文和总监管方的原始加密密码密文的标签获得总监管方的加密密码密文。

在步骤S5中,通过所述数据发送方的发送方加密私钥对所述目标明文数据的随机加密密文、所述数据接收方的加密密码密文以及所述总监管方的加密密码密文进行上链签名处理。

在步骤S6中,将经过所述上链签名处理后的目标明文数据的随机加密密文、数据接收方的加密密码密文以及总监管方的加密密码密文上链发送至所述目标区块链的智能合约。

在一些实施例中,目标区块链的智能合约在收到签名后的目标明文数据、数据接收方的加密密码密文以及总监管方的加密密码密文后,会将目标明文数据的随机加密密文、数据接收方的加密密码密文以及总监管方的加密密码密文进行绑定处理;然后从智能合约中获取数据发送方加密公钥,并使用公钥生成地址规则对发送方加密公钥进行处理以计算出数据发送方的地址;智能合约根据公钥生成地址规则判断该数据发送方的地址与发送目标明文数据的地址是否一致;若一致,则目标区块链允许目标明文数据的随机加密密文、数据接收方的加密密码密文以及总监管方的加密密码密文上链。

本公开实施例提供的基于区块链的数据加密方法,在随机加密密码对目标明文数据进行加密后,一方面使用数据发送方加密私钥和数据接收方加密公钥对该随机加密密码进行随机加密处理,以保证数据接收方解密后得到的目标明文数据是正确且未被篡改的,保护了用户的隐私;另一方面通过数据发送方加密私钥和监管方加密公钥对随机加密密码进行随机加密处理,能够保证监管方能够安全、准确地获得目标明文数据,进而使得监管方能够对目标明文数据进行有效监管。

在一些实施例中,当数据发送方完成数据上链之后,总监管方可以通过总监管方设备从智能合约中获取目标明文数据的随机加密密文、总监管方的加密密码密文,然后使用总监管方加密私钥和数据发送方加密公钥对总监管方的加密密码密文进行解密处理,以获得随机加密密码,最后使用随机加密密码对目标明文数据的随机加密密文进行解密处理,以获得目标明文数据。其中,总监管方设备可以是目标区块链上的节点设备。

但是,在一些应用场景中,目标明文数据可能需要被多个监管部门进行监管。该多个监管部门可以包括总监管方,也可以包括其它监管方。在本公开实施例中,可以将总监管方以外的监管方称之为子监管方。可以理解的是,本公开实施例中的总监管方可以只有一个,而子监管方可以有多个。需要注意的是,总监管方和子监管方可以不存在领导和被领导的关系。其中,各个子监管方对应的设备也可以是目标区块链上的节点设备。

为了使得目标明文数据能够在多个监管方中进行共享,本公开实施例提供了图4所示方法。

图4是根据一示例性实施例示出的对总监管方加密私钥的密钥片进行分配处理的方法。

在实施本实施例之前,需要进行一些预处理。

预处理1:合约管理方对总监管方加密私钥进行分片处理。

其中,合约管理方可以是一个具有高权限的用户,该合约管理方既有权限获取总监管方的总监管方加密私钥,也有权限增加或者删除子监管方,本公开对此不做限制。

在一些实施例中,合约管理方可以就是总监管方,也可以是和总监管方不同的用户,本公开对此不做限制。

合约管理方获取总监管方的私钥,并对总监管方的私钥进行分片处理以获得多个密钥片,该多个密钥片可以被分为隐私密钥片和共享密钥片,其中共享密钥片指的是能够被多个用户共享的密钥片,隐私密钥片指的是只能被单独的某个用户保存并使用的密钥片。例如该多个密钥片中的N个密钥片可以被设置为隐私密钥片,M个密钥片可以被设置为共享密钥片,N为大于或者等于1的正整数,M为大于或者等于0的整数。

在一些实施例中,可以通过以下方法对总监管方加密私钥进行分片处理:

构造一个多项式:

其中,S为总监管方加密私钥,p为素数,且S

假设,如果设置解密门限为2,那么解密时至少需要两个密钥片才能恢复总监方私钥,那么就可以在w个密钥片中设置一个共享密钥片,其它的作为隐私密钥片分配给不同的用户,例如将第一个密钥片作为共享密钥片,将第一个密钥片以外的所有密钥片均作为隐私密钥片。

预处理2:将分片后的N个隐私密钥片加密后进行上链处理。

合约管理方使用合约管理方加密私钥对该N个隐私密钥片进行随机加密处理,以获得密钥片加密密文;合约管理方使用合约管理方加密私钥对密钥片加密密文和M个共享密钥片进行签名处理,并将签名后的密钥片加密密文上链发送至目标区块链的智能合约中,以对密钥片加密密文进行托管。

参考图4,对总监管方加密私钥对应的密钥片进行分配处理的方法可以包括以下步骤。

在步骤S7中,合约管理方从所述智能合约中获取密钥片加密密文,所述密钥片加密密文是通过合约管理方加密私钥对总监管方加密私钥对应的N个隐私密钥片进行加密后获得的,N为大于等于1的正整数。

在一些实施例中,合约管理方可以从智能合约中获取已经上链的密钥片加密密文,该密钥片加密密文是合约管理方对总监管方加密私钥对应的N个隐私密钥片进行加密后获得的。

在步骤S8中,利用所述合约管理方加密私钥对所述密钥片加密密文进行解密处理,以获得所述N个隐私密钥片。

在步骤S9中,在所述N个隐私密钥片中随机确定一个未分配密钥片,以作为子监管方的子监管方密钥片。

该子监管方可以指的是任意一个有监管需求、并且经合约管理方授权的监管方,例如是某个政府监管部门,某公司的审查部门等等,本公开对此不做限制。总监管方与该子监管方可以存在管理和被管理的关系,例如总监管方可以是某职能监管部门的总监管控制机构,子监管方可以是该职能监管部门的分支监管机构,具体举例为:总监管方是某省的公安监管部门,子监管方可以是该省各个市的公安监管部门;总监管方和子监管方也可以不存在任何关系,例如总监管方可以是公安监管部门,子监管方可以是税务监管部门,子监管方还可以是某公司的监管部门,本公开对此不做限制。

在一些实施例中,该N个隐私密钥片中可能存在已经被分配了的隐私密钥片,因此本实施例将随机分配一个未分配的隐私密钥片给子监管方,作为该子监管方的子监管方密钥片,以确保不同的子监管方拥有不同的隐私密钥片。

在步骤S10中,从所述智能合约中获取所述子监管方的子监管方加密公钥。

在一些实施例中,还可以从子监管方处直接获得子监管方加密公钥,本公开对子监管方加密公钥的获取方式不做限制。

在步骤S11中,利用所述合约管理方加密私钥和所述子监管方加密公钥对所述子监管方密钥片进行随机加密处理,以获得子监管方加密密钥片。

在步骤S12中,利用所述合约管理方加密私钥对所述子监管方加密密钥片和所述子监管方加密公钥进行上链签名处理。

在步骤S13中,将经过所述上链签名处理后的所述子监管方加密密钥片和所述子监管方加密公钥上链发送至所述目标区块链的智能合约,以便所述智能合约将所述子监管方加密公钥与所述子监管方加密密钥片进行绑定操作,通过所述绑定操作确定所述未分配密钥片已被分配给所述子监管方。

在一些实施例中,目标区块链在接收到合约管理方上传的子监管方加密密钥片和子监管方加密公钥后,会通过下述方法进行验证,以确定该子监管方加密密钥片和子监管方加密公钥的确来自于合约管理方、并且并未受到篡改。

智能合约接收合约管理方上传的签名后的子监管方加密密钥片和子监管方加密公钥以及发送子监管方加密密钥片的地址和合约管理方加密公钥;智能合约利用公钥生成地址规则判断发送子监管方加密密钥片的地址与根据合约管理方加密公钥生成的地址是否一致;若一致,目标区块链将签名后的子监管方加密密钥片和子监管方加密公钥存储在智能合约中。

在一些实施例中,该子监管方密钥片可以有自己对应的子监管方加密公钥片。在一些实施例中,目标区块链的智能合约可以将子监管方加密公钥与子监管方加密密钥片进行绑定,使得子监管方加密密钥片对应的子监管方密钥片被标记为已被分配,避免该子监管方密钥片被二次分配。

在一些实施例中,子监管方的公私钥可能会因为一些客观原因发生改变,当子监管方的公私钥发生改变后,对应的子监管方加密密钥片也应该进行更新。

例如,若子监管方加密密钥片是通过子监管方的旧加密公钥进行加密获得的,那么对子监管方的旧加密公钥进行更新后获得子监管方的新加密公钥后,就需要根据子监管方的新加密公钥对子监管方加密密钥片进行更新,更新过程可以包括如下步骤:

合约管理方从智能合约中获取子监管方的旧加密公钥;合约管理方根据子监管方的旧加密公钥从智能合约中获取子监管方加密密钥片(子监管方加密密钥片和子监管方的旧加密公钥进行了绑定);合约管理方利用合约管理方加密私钥和子监管方的旧加密公钥对子监管方加密密钥片进行解密处理,以获得子监管方密钥片;合约管理方利用合约管理方加密私钥和子监管方的新加密公钥对子监管方密钥片进行随机加密处理,以更新子监管方加密密钥片;合约管理方利用合约管理方加密私钥对更新后的子监管方加密密钥片和子监管方的新加密公钥进行签名,并将签名后的子监管方加密密钥片和子监管方的新加密公钥上链至智能合约中;智能合约将子监管方的新加密公钥与更新后的子监管方加密密钥片进行绑定。

本实施例提供的技术方案,通过对总监管方加密私钥的分片处理获得的N个隐私密钥片,然后向子监管随机分配子监管方密钥片,使得解密时各个子监管方凭着各自的子监管方密钥片可以共享目标明文数据,以保证多个监管针对目标明文数据的同时执行监管。

图5是根据一示例性实施例示出的一种基于区块链的数据解密方法的流程图。本公开实施例所提供的方法可以由子监管方对应的设备来实现,该子监管方对应的设备可以是任意具有计算处理能力的电子设备,例如可以是图1实施例中的子监管方终端,也可以是服务器,也可以由服务器和终端设备共同执行,在下面的实施例中,以子监管方终端为执行主体为例进行举例说明,但本公开并不限定于此。

参考图5,上述数据解密方法可以包括以下步骤。

在步骤S01中,从目标区块链的智能合约中获取目标明文数据的随机加密密文、总监管方的加密密码密文和数据发送方的发送方加密公钥,所述总监管方的加密密码密文和所述发送方加密公钥均与所述目标明文数据的随机加密密文对应,所述总监管方的加密密码密文是通过所述数据发送方的发送方加密私钥和总监管方加密公钥对随机加密密码进行随机加密后生成的,所述目标明文数据的随机加密密文是通过所述随机加密密码进行随机加密后生成的。

在步骤S02中,从所述智能合约中获取子监管方加密密钥片和M个共享密钥片,其中对总监管方加密私钥进行分片处理后获得N个隐私密钥片和所述M个共享密钥片,所述子监管方加密密钥片是通过合约管理方加密私钥、子监管方加密公钥对所述N个隐私密钥片中分配给所述子监管方的子监管方密钥片进行随机加密后生成的,N为大于或者等于1的正整数,M为大于或者等于0的整数。

在一些实施例中,M个共享密钥片是共享在目标区块链中的与总监管方加密私钥对应的密钥片。

在步骤S03中,从所述智能合约中获取合约管理方加密公钥。

在步骤S04中,使用子监管方加密私钥、所述合约管理方加密公钥解密所述子监管方加密密钥片以获得所述子监管方密钥片。

在步骤S05中,利用所述子监管方密钥片、所述M个共享密钥片以及所述发送方加密公钥对所述总监管方的加密密码密文进行解密处理,以获得所述随机加密密码。

在步骤S06中,使用所述随机加密密码解密所述目标明文数据的随机加密密文,获得所述目标明文数据。

在一些实施例中,利用所述子监管方密钥片、所述M个共享密钥片以及所述发送方加密公钥对所述总监管方的加密密码密文进行解密处理,以获得所述随机加密密码可以具体为:

通过子监管方密钥片和M个共享密钥片确定总监管方加密私钥;利用总监管方加密私钥和数据发送方加密公钥对总监管方的加密密码密文进行解密处理,以获得随机加密密码。

在一些实施例中,如果上述N个隐私密钥片和M个共享密钥片是通过公式(1)进行分片处理的,那就可以通过以下方法确定总监管方加密私钥。

将子监管方密钥片和M个共享密钥片带入公式(2),即可求出总监管方加密私钥S。

当x = 0时,F(0)=S,即可恢复出S。将t组(x

在一些实施例中,若总监管方的加密密码密文包括总监管方的原始加密密码密文和总监管方的原始加密密码密文的标签,总监管方的原始加密密码密文是通过总监管方加密密钥对所述随机加密密码进行加密后生成的,总监管方的原始加密密码密文的标签是通过总监管方消息认证码密钥生成的,总监管方加密密钥和总监管方消息认证码密钥是通过数据发送方加密私钥和总监管方加密公钥生成的。

那么,利用总监管方加密私钥和数据发送方加密公钥对总监管方的加密密码密文进行解密处理,以获得随机加密密码可以包括以下步骤:根据总监管方加密私钥和数据发送方加密公钥生成总监管方加密密钥和总监管方消息认证码密钥;通过总监管方消息认证码密钥对总监管方的原始加密密码密文的标签进行验证;验证通过后,利用总监管方加密密钥对总监管方的原始加密密码密文进行解密处理,以获得所述随机加密密码。

本实施例提供的技术方案,一方面通过数据发送方加密公钥、子监管方密钥片和M个共享密钥片对总监管方的加密密码密文进行解密获得随机加密密码,然后使用随机加密密码对目标明文数据的随机加密密文进行解密,安全高效地获得了目标明文数据;另一方面,通过子监管方密钥片和M个共享密钥片实现了对目标明文数据的共享,保证了多个监管方共同执行监管。

图6是根据一示例性实施例示出的一种基于区块链的数据解密方法的流程图。本公开实施例所提供的方法可以由数据接收方对应的设备来实现,该数据接收方对应的设备可以是任意具有计算处理能力的电子设备,例如可以是图1实施例中的数据接收方终端,也可以是服务器,也可以由服务器和接收方终端共同执行,在下面的实施例中,以数据接收方终端为执行主体为例进行举例说明,但本公开并不限定于此。

参考图6,上述数据解密方法可以包括以下步骤。

在步骤S001中,从目标区块链的智能合约中获取数据接收方的加密密码密文、目标明文数据的随机加密密文以及发送方加密公钥,所述数据接收方的加密密码密文包括所述数据接收方的原始加密密码密文和所述数据接收方的原始加密密码密文的标签。

在步骤S002中,使用所述数据接收方的数据接收方加密私钥及所述发送方加密公钥生成接收方加密密钥和接收方消息认证码密钥。

在步骤S003中,使用所述接收方消息认证码密钥对所述接收方的原始加密密码密文的标签进行验证。

在步骤S004中,验证通过后,使用所述接收方加密密钥解密所述接收方的原始加密密码密文,以获得随机加密密码。

在步骤S005中,使用所述随机加密密码解密所述目标明文数据的随机加密密文,获得所述目标明文数据。

上述解密过程与图5所示实施例中通过总监管方加密秘钥和总监管方消息认证码密钥进行解密的过程类似,本实施例不再赘述。

在另外一些实施例中,若数据接收方加密密码是通过数据发送方加密私钥和数据接收方加密公钥生成的,且数据接收方加密密码不是由数据接收方的原始加密密码密文和数据接收方的原始加密密码密文的标签组成的,那么可以直接使用数据接收方的加密私钥和数据发送方加密公钥对数据接收方加密密码进行解密;然后使用随机加密密码解密目标明文数据的随机加密密文,获得目标明文数据。

本公开实施例提供的技术方案,一方面凭借数据接收方加密私钥和接收方加密公钥对接收方的加密密码密文进行解密获得随机加密密码,然后使用随机加密密码对目标明文数据的随机加密密文进行解密,安全高效地获得了目标明文数据;另一方面,在对接收方解密密码密文进行解密时,首先通过数据接收方消息认证码秘钥对接收方的加密密码密文的标签进行验证,然后再进行解密,进一步地保证了解密过程中的安全性。

在区块链系统中,每一笔交易都是由账户用户发起的,这里将发送方账户标记为UA,其对应的账户地址为AA,该账户对应的私钥为kA,公钥为PubA;接收方账户标记为UB,其对应的账户地址为AB,该账户对应的私钥为kB,公钥为PubB;总监管方账户标记为UC,其对应的账户地址为AC,该帐号对应的私钥为kC,公钥为PubC;子监管方账户标记为UD,该账号对应的私钥为kD,公钥为PubD;合约管理方编辑为Admin,其对应的账户地址为Aadmin,该账户对应的私钥为kadmin,公钥为Pubadmin。

下面,本公开将结合图7~图13的实施例对本公开涉及的加解密方法进行解释说明。

1) 通过合约存储公钥。

在实现本方案的加解密方法之前,发送方、接收方、总监管方、子监管方以及合约管理方均会通过如图7所示方法上链存储各自的公钥:用户可以将自己的地址及所对应的公钥提交到目标区块链的智能合约中,该目标区块链的智能合约(如图7中的公钥存储智能合约)中的公钥存储智能合约需要通过公钥生成地址规则,判断传入的地址与通过传入的公钥生成的地址是否一致,若一致则将用户公钥存入智能合约中。

通过上述方法存储公钥,可以保证目标区块链中的公钥均是正确无误、未被篡改的。

2) 通过合约存储子监管方的子监管方密钥片。

a)合约管理方对总监管方加密私钥进行分片处理。

如图8所示,合约管理方获取总监管方加密私钥kC,并将总监管方的总监管私钥kC进行一定数量(例如为n)的密码分片处理;设置门限共享方案的门限值(例如为2),并且使用合约管理方加密私钥kamdin对除第一片密钥片以外的所有密钥片进行加密得到密钥片加密密文c;合约管理方使用私钥kamdin将密钥片加密密文c和第一片密钥片进行签名;最后将签名后的密钥片加密密文c和第一片密钥片上链发送至目标区块链的智能合约中。

b) 合约管理方给子监管方分配密钥片。

如图9所示,合约管理方从目标区块链的智能合约中获取密钥片加密密文c,并使用合约管理方加密私钥对密钥片加密密文c进行解密处理,以获得被加密的密钥片;合约管理方使用合约管理方加密私钥解密密钥片加密密文,以获得除第一密钥片以外的所有密钥片;合约管理方给子监管方随机分配一个密钥片以作为子监管方的子监管方密钥片kp,并根据子监管方密钥片kp生成子监管方加密公钥片Pubkp(kp与Pubkp是一对非对称公私钥);合约管理方使用合约管理方加密私钥私钥、子监管方加密公钥PubD对子监管方密钥片kp进行加密,以得到子监管方加密密钥片d;合约管理方使用合约管理方加密私钥将子监管方加密公钥、kp的公钥Pubkp以及密文d进行上链签名处理;合约管理方使用合约管理方加密私钥将签名后的子监管方加密公钥PubD、kp、公钥Pubkp以及密文d上链发送至目标区块链的智能合约中;目标区块链的智能合约将PubD、Pubkp做绑定,同时将PubD、d存入智能合约中。

c) 子监管方更新私钥。

在一些应用场景中,子监管方的公钥可能会发生更新,假设子监管方更新后的公钥为pubD1。

如图10所示,合约管理方从智能合约中获取子监管方旧加密公钥、子监管方加密密钥片d;合约管理方通过子监管方旧加密公钥以及合约管理方加密私钥对子监管方加密密钥片d进行解密处理,以获得子监管方密钥片kp;合约管理方使用合约管理方加密私钥以及子监管方新加密公钥pubD1对子监管方密钥片kp进行随机加密处理,以获得更新后的子监管方加密密钥片;合约管理方使用合约管理方加密私钥将签名后的子监管方的新加密公钥PubD1,kp公钥Pubkp,更新后的子监管方加密密钥片d发送至合约;目标区块链的智能合约将PubD、Pubkp做绑定,同时将PubD,d存入智能合约中。

3) 对目标明文数据加密,并将加密数据上链。

假设用户UA需要进行一笔数据加密上链,其可以通过如图11所示方式来实现。

数据发送方UA从合约中获取接收方加密公钥PubB和总监管方加密公钥PubC;数据发送方UA生成随机加密密码pwd,并通过适合的加密算法(例如随机加密算法)、使用pwd将明文m进行加密得到密文c;数据发送方UA使用自己的私钥kA及数据接收方加密公钥PubB对随机加密密码进行ECIES(Elliptic Curve Integrate Encrypt Scheme,一种集成加密方案)加密,将pwd进行加密成原始加密密码密文c2’和原始加密密码密文的标签d’,将c2’和d’组成数据接收方的加密密码密文c2;数据发送方UA使用自己的私钥kA及总监管方加密公钥PubC进行ECIES加密,将pwd进行加密成原始加密密码密文c3’和原始加密密码密文的标签d3’,将c3’和d3’组成总监管方的加密密码密文c3;将AC、c3、AB、c2、c签名后上链至目标区块链的智能合约。

4) 数据接收方解密(如图12所示)。

数据接收方从目标区块链的智能合约中获取和自己相关的目标明文数据的随机加密密文c、数据接收方的加密密码密文c2;获取数据发送方的公钥信息pubA;数据接收方使用自己的私钥kB及数据发送方的公钥pubA解密c2,从而得到密文的加密密码pwd;使pwd解密密文c得到明文m。

5) 子监管方解密(如图13所示)。

子监管方从智能合约中获取目标明文数据c、总监管方的加密密码密文c3;子监管方从智能合约中获取数据发送方的公钥信息pubA;子监管方从智能合约获取和自己有关的子监管方加密密钥片,并使用自己的私钥解密出子监管方密钥片kp;使用两个密钥片(包括子监管方加密密钥片kp以及共享在目标区块链上的第一密钥片)及发送者的公钥对总监管方的加密密码密文c3进行解密,以获得pwd;使pwd解密密文c得到明文m。

本公开某些实施例提供的基于区块链的数据加密方法,在随机加密密码对目标明文数据进行加密后,一方面使用数据发送方加密私钥和数据接收方加密公钥对该随机加密密码进行随机加密处理,能够保证接收方解密后获得到的目标明文数据是正确且未被篡改的,保护了用户的隐私;另一方面通过数据发送方加密私钥和监管方加密公钥对随机加密密码进行随机加密处理,能够保证监管方能够安全、准确的获得目标明文数据,进而使得监管方能够对目标明文数据进行有效监管。

图14是根据一示例性实施例示出的一种基于区块链的数据加密装置的框图。参照图14,本公开实施例提供的基于区块链的数据加密装置1400可以包括:接收方公钥获取模块1401、随机密码生成模块1402、接收方的加密密码密文生成模块1403、总监管方的加密密码密文生成模块1404以及目标明文数据的随机加密密文签名模块1405以及目标明文数据的随机加密密文发送模块1406。

其中,所述接收方公钥获取模块1401可以配置为数据发送方从目标区块链的智能合约中获取数据接收方加密公钥和总监管方加密公钥,其中所述数据发送方拥有自己的发送方加密私钥;所述随机密码生成模块1402可以配置为生成随机加密密码,并使用所述随机加密密码对目标明文数据进行随机加密处理,以得到所述目标明文数据的随机加密密文;所述接收方的加密密码密文生成模块1403可以配置为利用所述数据发送方的发送方加密私钥和所述数据接收方加密公钥对所述随机加密密码进行初阶集成加密处理,以生成所述数据接收方的加密密码密文;所述总监管方的加密密码密文生成模块1404可以配置为利用所述数据发送方的发送方加密私钥和总监管方加密公钥对所述随机加密密码进行进阶集成加密处理,以生成总监管方的加密密码密文;所述目标明文数据的随机加密密文签名模块1405可以配置为通过所述数据发送方的发送方加密私钥对所述目标明文数据的随机加密密文、所述数据接收方的加密密码密文以及所述总监管方的加密密码密文进行上链签名处理;所述目标明文数据的随机加密密文发送模块1406可以配置为将经过所述上链签名处理后的目标明文数据的随机加密密文、数据接收方的加密密码密文以及总监管方的加密密码密文上链发送至所述目标区块链的智能合约。

在一些实施例中,所述总监管方加密公钥是总监管方的公钥;所述基于区块链的数据加密装置还可以包括:密钥片加密密文获取模块、密钥片加密密文解密模块、子监管方密钥片分配模块、子监管方加密公钥获取模块、子监管方加密密钥片生成模块、子监管方加密密钥片签名模块以及子监管方加密密钥片上链模块。

其中,所述密钥片加密密文获取模块可以配置为合约管理方从所述智能合约中获取密钥片加密密文,所述密钥片加密密文是通过合约管理方加密私钥对总监管方加密私钥对应的N个隐私密钥片进行加密后获得的,N为大于等于1的正整数;所述密钥片加密密文解密模块可以配置为利用所述合约管理方加密私钥对所述密钥片加密密文进行解密处理,以获得所述N个隐私密钥片;所述子监管方密钥片分配模块可以配置为在所述N个隐私密钥片中随机确定一个未分配密钥片,以作为子监管方的子监管方密钥片;所述子监管方加密公钥获取模块可以配置为从所述智能合约中获取所述子监管方的子监管方加密公钥;所述子监管方加密密钥片生成模块可以配置为利用所述合约管理方加密私钥和所述子监管方加密公钥对所述子监管方密钥片进行随机加密处理,以获得子监管方加密密钥片;所述子监管方加密密钥片签名模块可以配置为利用所述合约管理方加密私钥对所述子监管方加密密钥片和所述子监管方加密公钥进行上链签名处理;所述子监管方加密密钥片上链模块可以配置为将经过所述上链签名处理后的所述子监管方加密密钥片和所述子监管方加密公钥上链发送至所述目标区块链的智能合约,以便所述智能合约将所述子监管方加密公钥与所述子监管方加密密钥片进行绑定操作,通过所述绑定操作确定所述未分配密钥片已被分配给所述子监管方。

在一些实施例中,所述密钥片加密密文获取模块可以包括:总监管方加密私钥获取单元、分片处理单元、隐私密钥片加密处理单元、密钥片加密密文签名处理单元以及密钥片加密密文上链单元。

其中,所述总监管方加密私钥获取单元可以配置为所述合约管理方获取所述总监管方加密私钥;所述分片处理单元可以配置为将所述总监管方加密私钥进行分片处理,以获得所述N个隐私密钥片和M个共享密钥片,M为大于或者等于0的整数;所述隐私密钥片加密处理单元可以配置为通过所述合约管理方加密私钥对所述N个隐私密钥片进行随机加密处理,以获得所述密钥片加密密文;所述密钥片加密密文签名处理单元可以配置为通过所述合约管理方加密私钥对所述密钥片加密密文和所述M个共享密钥片进行上链签名处理;所述密钥片加密密文上链单元可以配置为将签名后的所述密钥片加密密文和所述M个共享密钥片上链发送至所述智能合约。

在一些实施例中,所述子监管方加密密钥片是通过所述子监管方的旧加密公钥进行随机加密后获得的,对所述子监管方的旧加密公钥进行更新后获得所述子监管方的新加密公钥;所述基于区块链的数据加密装置还可以包括:子监管方的旧加密公钥获取模块、子监管方加密密钥片提取模块、旧加密公钥加密模块、新加密公钥加密模块以及子监管方加密密钥片更新模块。

其中,所述子监管方的旧加密公钥获取模块可以配置为所述合约管理方从所述智能合约中获取所述子监管方的旧加密公钥;所述子监管方加密密钥片提取模块可以配置为根据所述子监管方的旧加密公钥从所述智能合约中获取所述子监管方加密密钥片;所述旧加密公钥加密模块可以配置为利用所述合约管理方加密私钥和所述子监管方的旧加密公钥对所述子监管方加密密钥片进行解密处理,以获得所述子监管方密钥片;所述新加密公钥加密模块可以配置为利用所述合约管理方加密私钥和所述子监管方的新加密公钥对所述子监管方密钥片进行随机加密处理,以更新所述子监管方加密密钥片;所述子监管方加密密钥片更新模块可以配置为利用所述合约管理方加密私钥对更新后的子监管方加密密钥片和所述子监管方的新加密公钥进行上链签名处理,并将签名后的所述子监管方加密密钥片和所述子监管方的新加密公钥上链发送至所述目标区块链的智能合约中,以便所述智能合约将所述子监管方的新加密公钥与更新后的所述子监管方加密密钥片进行绑定。

在一些实施例中,所述接收方的加密密码密文生成模块1403可以包括:接收方消息认证码密钥生成单元、数据接收方的原始加密密码密文生成单元。

其中,所述接收方消息认证码密钥生成单元可以配置为利用所述发送方加密私钥及所述数据接收方加密公钥生成接收方加密密钥和接收方消息认证码密钥;所述数据接收方的原始加密密码密文生成单元可以配置为利用所述接收方加密密钥对所述随机加密密码进行加密获得所述数据接收方的原始加密密码密文,并使用所述接收方消息认证码密钥生成所述数据接收方的原始加密密码密文的标签,组合所述数据接收方的原始加密密码密文和所述数据接收方的原始加密密码密文的标签获得所述数据接收方的加密密码密文。

在一些实施例中,所述总监管方的加密密码密文生成模块1404可以包括:总监管方消息认证码密钥生成单元和总监管方的原始加密密码密文生成单元。

其中,所述总监管方消息认证码密钥生成单元可以配置为利用所述发送方加密私钥及所述总监管方加密公钥生成总监管方加密密钥和总监管方消息认证码密钥;所述总监管方的原始加密密码密文生成单元可以配置为利用所述总监管方加密密钥对所述随机加密密码进行加密获得总监管方的原始加密密码密文,并使用所述总监管方消息认证码密钥生成所述总监管方的原始加密密码密文的标签,组合所述总监管方的原始加密密码密文和所述总监管方的原始加密密码密文的标签获得所述总监管方的加密密码密文。

在一些实施例中,所述基于区块链的数据加密装置1400还可以包括:发送方地址接收模块、地址判断模块以及存储模块。

其中,所述发送方地址接收模块可以配置为所述智能合约接收所述数据发送方上传的签名后的目标明文数据的随机加密密文、数据接收方的加密密码密文、总监管方的加密密码密文以及数据发送方地址和发送方加密公钥;所述地址判断模块可以配置为所述智能合约利用公钥生成地址规则判断所述数据发送方地址与根据所述发送方加密公钥生成的地址是否一致;所述存储模块可以配置为若一致,所述目标区块链将经过所述上链签名处理后的目标明文数据的随机加密密文、数据接收方的加密密码密文以及总监管方的加密密码密文存储在所述智能合约中。

由于本公开的示例实施例的基于区块链的数据加密装置1400的各个功能模块与上述基于区块链的数据加密方法的示例实施例的步骤对应,因此在此不再赘述。

图15是根据一示例性实施例示出的一种基于区块链的数据解密装置的框图。所述基于区块链的数据解密装置可以应用于子监管方。参照图15,本公开实施例提供的基于区块链的数据解密装置1500可以包括:发送方加密公钥获取模块1501、共享密钥片获取模块1502、合约管理方加密公钥获取模块1503、解密子监管方加密密钥片模块1504、随机加密密码获取第一模块1505以及目标明文数据第一获取模块1506。

其中,所述发送方加密公钥获取模块1501可以配置为从目标区块链的智能合约中获取目标明文数据的随机加密密文、总监管方的加密密码密文和数据发送方的发送方加密公钥,所述总监管方的加密密码密文和所述发送方加密公钥均与所述目标明文数据的随机加密密文对应,所述总监管方的加密密码密文是通过所述数据发送方的发送方加密私钥和总监管方加密公钥对随机加密密码进行随机加密后生成的,所述目标明文数据的随机加密密文是通过所述随机加密密码进行随机加密后生成的;所述共享密钥片获取模块1502可以配置为从所述智能合约中获取子监管方加密密钥片和M个共享密钥片,其中对总监管方加密私钥进行分片处理后获得N个隐私密钥片和所述M个共享密钥片,所述子监管方加密密钥片是通过合约管理方加密私钥、子监管方加密公钥对所述N个隐私密钥片中分配给所述子监管方的子监管方密钥片进行随机加密后生成的,N为大于或者等于1的正整数,M为大于或者等于0的整数;所述合约管理方加密公钥获取模块1503可以配置为从所述智能合约中获取合约管理方加密公钥;所述解密子监管方加密密钥片模块1504可以配置为使用子监管方加密私钥、所述合约管理方加密公钥解密所述子监管方加密密钥片以获得所述子监管方密钥片;所述随机加密密码获取第一模块1505可以配置为利用所述子监管方密钥片、所述M个共享密钥片以及所述发送方加密公钥对所述总监管方的加密密码密文进行解密处理,以获得所述随机加密密码;所述目标明文数据第一获取模块1506可以配置为使用所述随机加密密码解密所述目标明文数据的随机加密密文,获得所述目标明文数据。

在一些实施例中,所述随机加密密码获取第一模块可以包括:联合解密单元和随机加密密码确定单元。

其中,所述联合解密单元可以配置为通过所述子监管方密钥片和所述M个共享密钥片确定所述总监管方加密私钥;所述随机加密密码确定单元可以配置为利用所述总监管方加密私钥和所述发送方加密公钥对所述总监管方的加密密码密文进行解密处理,以获得所述随机加密密码。

在一些实施例中,所述总监管方的加密密码密文包括所述总监管方的原始加密密码密文和所述总监管方的原始加密密码密文的标签,所述总监管方的原始加密密码密文是通过监管方加密密钥对所述随机加密密码进行加密后生成的,所述总监管方的原始加密密码密文的标签是通过总监管方消息认证码密钥生成的,所述监管方加密密钥和所述总监管方消息认证码密钥是通过发送方加密私钥和总监管方加密公钥生成的;其中,所述随机加密密码确定单元可以包括:总监管方加密密钥确定子单元、标签验证子单元以及总监管方的原始加密密码解密单元。

其中,所述总监管方加密密钥确定子单元可以配置为根据监管方加密私钥和所述发送方加密公钥生成所述总监管方加密密钥和所述总监管方消息认证码密钥;所述标签验证子单元可以配置为通过所述总监管方消息认证码密钥对所述总监管方的原始加密密码密文的标签进行验证;所述总监管方的原始加密密码解密单元可以配置为验证通过后,利用所述总监管方加密密钥对所述总监管方的原始加密密码密文进行解密处理,以获得所述随机加密密码。

由于本公开的示例实施例的基于区块链的数据解密装置1500的各个功能模块与上述基于区块链的数据解密方法的示例实施例的步骤对应,因此在此不再赘述。

图16是根据一示例性实施例示出的一种基于区块链的数据解密装置的框图。所述基于区块链的数据解密装置可以应用于数据接收方。参照图16,本公开实施例提供的基于区块链的数据解密装置1600可以包括:数据接收方的加密密码密文获取模块1601、接收方加密密钥确定模块1602、接收方的原始加密密码密文的标签验证模块1603、接收方的原始加密密码密文解密模块1604以及目标明文数据第二获取模块1605。

其中,所述数据接收方的加密密码密文获取模块1601可以配置为从目标区块链的智能合约中获取数据接收方的加密密码密文、目标明文数据的随机加密密文以及发送方加密公钥,所述数据接收方的加密密码密文包括所述数据接收方的原始加密密码密文和所述数据接收方的原始加密密码密文的标签;所述接收方加密密钥确定模块1602可以配置为使用所述数据接收方的数据接收方加密私钥及所述发送方加密公钥生成接收方加密密钥和接收方消息认证码密钥;所述接收方的原始加密密码密文的标签验证模块1603可以配置为使用所述接收方消息认证码密钥对所述接收方的原始加密密码密文的标签进行验证;所述接收方的原始加密密码密文解密模块1604可以配置为验证通过后,使用所述接收方加密密钥解密所述接收方的原始加密密码密文,以获得随机加密密码;所述目标明文数据第二获取模块1605可以配置为使用所述随机加密密码解密所述目标明文数据的随机加密密文,获得所述目标明文数据。

由于本公开的示例实施例的基于区块链的数据解密装置1600的各个功能模块与上述基于区块链的数据解密方法的示例实施例的步骤对应,因此在此不再赘述。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本公开实施例的方法,例如图3的一个或多个所示的步骤。

此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

应当理解的是,本公开并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

相关技术
  • 基于区块链的数据加解密方法、装置及相关设备
  • 区块链的隐私数据加解密方法、装置、设备和存储介质
技术分类

06120112497676